Informatik und Kram

Da wir lange nicht wußten, wo wir das für die Uni ausgearbeitete Material unterbringen sollten und auch einen schrecklichen Drang hatten der Welt diverse Sachen aufzudrücken...

Onlinebanking, Shell & Gkrellm
de-flagge aktiviert en-flagge deaktiviert

Online-banking gibts schon lange, aber da ich meistens eigentlich nur meinen aktuellen Kontostand wissen will, sind mir die fünf klicks und Eingabe von Konto-Nr. und Passwort schon zuviel für so nen einfachen task. Glücklicherweise benutzen die meisten deutschen Banken mittlerweile HBCI mit dem PIN/TAN-Verfahren, ich brauch also nicht mal nen Chipkartenleser dafür. Und da gkrellm sowieso immer läuft, bietet sich das super an, um den Kontostand immer aktuell anzeigen zu lassen.
( dieses Tutorial wurde auf arch-linux zugeschnitten, sollte aber ohne weiteres auch auf anderen Distributionen funktionieren! )

Vorarbeit

benötigte Pakete

  • gwenhywfar
  • ktoblzcheck
  • aqbanking
  • sind alle im arch-repository zu finden!
  • aqbanking-cli muss man selbst compilen, gibts direkt vom Entwickler
  • HBCI einrichten

    aqbanking hat uns das aqhbci-tool3 mitgebracht, mit dem wir unsere hbci-Konten verwalten können.
    Dazu muss ein Benutzer angelegt werden, eine BLZ und Kontonummer. Ausserdem braucht man das Zertifikat von der Bank. Das ganze kann man nach diesem Tutorial machen, oder (so hab ichs gemacht) mit gnuCash ( ACHTUNG, das muss mit hbci-enabled compiled werden, in den arch-repositorys ist es nur ohne drin), denn hier gibt es einen netten, grafischen assistenten für die Einrichtung (die hier erstelle Konfiguration von aqhbci kann dann auch von anderen Programmen verwendet werden!).

    Pinfile für aqbanking-cli

    Da das commandline-tool von aqbanking ja automatisch im Hintergrund laufen soll, wollen wir natürlich auch kein Passwort eintippen, deshalb legt man ein Pinfile an.
    aqhbci-tool3 mkpinlist
    
    erstellt ein leeres Pinfile, dass ihr nur noch öffnen müsst, und die PIN für euer Onlinebanking eintragen!

    Sachen abrufen und anzeigen

    BLZ = Bankleitzahl, KTO = Kontonummer !

    Umsätze und Kontostand abholen

    Wenn hbci erfolgreich eingerichtet wurde, und ihr aqhbci-cli habt, könnt ihr mit diesem tool folgendermassen den Kontostand abfragen und in ein file schreiben:
    ./aqbanking-cli.sh -n -P ~/.pinfile.pin request \ 
     -b BLZ -a KTO -c test.ctx --balance
    
    Und um das ganze jetzt in Klartext umzuwandeln liefert aqbanking-cli auch gleich noch ein tool mit:
    aqbanking-cli.sh listbal -b BLZ -a KTO -c test.ctx
    

    Automatisieren

    Bash-Skript

    Jetzt kann man das schön automatisiert machen lassen alles!
    Ich hab mir dazu folgendes Skript ( check_kto.sh) angelegt:
    #!/bin/sh
    ~/banking-cli/aqbanking-cli.sh \ 
    -n -P ~/.pinfile.pin \ 
    request -b BLZ -a KTO \ 
    -c ~/test.ctx --balance &&
    
    ~/banking-cli/aqbanking-cli.sh \
    listbal -b BLZ -a KTO \
    -c ~/test.ctx \
    | awk '{print $6 "€"}' > ~/.kontostand &&
    
    echo "Kontostand geholt:" >> ~/.kontostand &&
    
    echo `date` >> ~/.kontostand
    

    Cronjob

    Dieses skript in /usr/bin verschoben, mit chmod +x ausführbar gemacht, und anschliessend mit crontab -e als Cronjob alle zwei Stunden ausführen lassen:
    * */2 * * * /usr/bin/check_kto.sh
    

    Gkrellm

    Man könnte jetzt natürlich ein gkrellm-plugin schreiben, was den Cronjob ersetzt. Leider hatte ich nicht so viel Zeit, daher hab ichs mal wieder (jaja, sry, meissner) dirty gemacht. Es gibt nämlich schon ein gkrellm-plugin, dass eine Datei ausliest und deren erste Zeile in gkrellm ausgibt. Also einfach das plugin installieren, und dort die Datei ~/.kontostand ausgeben lassen, fertig!Das tool liest alle zehn Sekunden das file, das war mir etwas zu häufig, man kann im src des plugins nach GK.ten_second_tick suchen und diesen durch GK.minute_tick ersetzen, dann wird nur alle 60 seks. das file ausgelesen

    Kommentare

    Kommentar schreiben