Fnatt og latskap. Skript for å lese av telleverk

Jeg får fnatt. Det er kjedelig. Jeg får fnatt fordi jeg er lat, og fordi jeg hater å gjøre samme jobb mer enn 1 gang. Når jeg gjør samme jobb for tredje eller fjerde gang har fnatten og latskapen vokst seg så stor at jeg heller lager et skript for å gjøre jobben.

Telleravlesning på en gjeng med leasede multifunksjonsskrivere er en sånn jobb. Som må gjøres igjen og igjen. Helt til man får fnatt og lager et skript i stedet altså. Et bash-skript. Jeg lager en tekstfil som starter med:

#!/bin/bash

I mitt tilfelle leser jeg vanligvis av tellerverket på skriverens web-interface. Da var det sånn at jeg først må gå til http://ip.adresse.til.skriveren/, altså for eksempel http://10.22.33.44/, og så klikke på en knapp i menyen for å komme inn på telleravlesningen. Denne gangen, i stedet for å klikke på knappen ser jeg bare på hvor lenken fører hen. I tilfellet mitt står det at lenken fører til ../../getUnificationCounter.cgi.

../ betyr ett hakk bak, så ../../ betyr altså to hakk bak. Min link til telleravlesningen er altså to hakk bak fra der jeg står i starten av menyen og så inn til getUnificationCounter.cgi. Etter å ha slettet to hakk bak i adresselinjen og limt inn getUnificationCounter.cgi har jeg adressen http://10.22.33.44/web/guest/no/websys/status/getUnificationCounter.cgi i adressefeltet. Jeg trykker enter for å sjekke om det er korrekt, og siden det er det kan jeg bare kopiere hele adressen inn til mitt skript, som skal gjøre jobben. Skriver inn litt før og etter så skriptet så langt ser slik ut (curl leser web-sider kommandolinlje, og > sender utdata til en fil):

#!/bin/bash
curl http://10.22.33.44/web/guest/no/websys/status/getUnificationCounter.cgi > MinSkriver.html

Siden jeg har ørten skrivere kopierer jeg linja og bare endrer IP-adressen og ut-filen.

Tellerverket vårt skal sendes til leasingfyr@leasingfirma.no, så da zip-er jeg sammen alle utfilene til slutt og sender det av gårde. Automatisk så klart:

#!/bin/bash
curl http://10.22.33.44/web/guest/no/websys/status/getUnificationCounter.cgi > MinSkriver1.html
curl http://10.22.33.45/web/guest/no/websys/status/getUnificationCounter.cgi > MinSkriver2.html
curl http://10.22.33.46/web/guest/no/websys/status/getUnificationCounter.cgi > MinSkriver3.html
curl http://10.22.33.47/web/guest/no/websys/status/getUnificationCounter.cgi > MinSkriver4.html
FILNAVN=telleverk$(date ‘+%d%m%y’).zip
zip $FILNAVN MinSkriver1.html MinSkriver2.htmlMinSkriver3.htmlMinSkriver4.html
mutt -s “Automatisk telleravlesning” -a $FILNAVN — leasingfyr@leasingfirma.no < telleravlesning_epost.txt

Hvor telleravlesning_epost.txt er en tekstfil som inneholder selve meldingen. “Hei! Vedlagt er telleravlesningen.”

Gjør skriptet ditt kjørbartt:

chmod +x dittskript.sh

Hvis du nå skulle finne på å forsøke å kjøre skriptet vil du fort finne at det ikke er alle kommandoene som fungerer av seg selv. Vi trenger litt ekstra programvare på maskinen som skal kjøre dette automatisk. Kommandolinje:

sudo apt-get install zip mutt postfix

Så editer postfix konfigurasjonsfilen til å sende epost via din nettleverandørs smtp, sånn:

sudo nano /etc/postfix/main.cf

Finn linjen:

relayhost =

og endre til

relayhost = smtp.dinnettleverandørssmtpserver.no

Sånn, skriptet er klart til testing. Du kan kjøre det med:

./dittskript.sh

Og planlegge når det skal kjøres med

crontab -e

og skrive inn

0 5 1 1,4,7,10 * /hele/banen/til/dittskript.sh

Tadah! Den siste der er altså på formatet

minutt time “dag i måneden” måned ukedag  kommando. Så mitt kjøres klokken 05:00 den 1. hver januar, april, juli og oktober uansett hvilken ukedag dette faller på.

Alt soleklart? Fint. Da slipper du å spørre om noe i kommentarfeltet under.

One thought on “Fnatt og latskap. Skript for å lese av telleverk”

Leave a Reply

Your email address will not be published. Required fields are marked *