Lassen sie ihr Auto stehn, fahren sie mit der Bahn.

Ich wollte heute die Bahn benutzten. Es war auch keine lange fahrt, nur 45min (nach Plan). Also Ticket geholt und an den Bahnsteig. Irgendwann kann überraschenend die Durchsage : “Wegen eine Schienenspeerung fährt dieser Zug heute leider nicht …” Fuck. Mein Zug fährt jede Stunde. Also hab ich mir eine Stunde die Beine vertretten und ein paar Fotos von nicht fahrenden Zügen gemacht. Als die Stunde rum war heiß es wieder “Wegen einer Schienenspeerung fährt dieser Zug heute leider nicht …” Fuck!

Langsam hat es mich wirklich generft. Nach nochmal 30min warten gab es dann einen Ersatzzug. Der Stand dann allerdings auch noch ne Stunde im Bahnhof rum. Als der Erstatzug dann endlich losführ hab ich auch endlich erfahren was eigendlich passiert ist: Die Feuerwehr musste was zwischen Baden-Baden und Karlsruhe löschen und hat die Schienen gespeert. Hätte man auch früher sagen können. Obwohl, auf der Streck habe ich nichts gesehn was einen Brandt hätte sein können. Verschwörung ? An alle die mit warten mussten: Frohe Ostern! (gilt auch für alle anderen)

Damn You Busybox!

Hier höre gernen die Nightline auf dem Radio Sender YouFm mit meinem Lieblingsmoderator Holger Klein (Di-Do, 23 Uhr bis 1 Uhr). Da ich nicht immer zuhause bin hab ich mir ein kleines Skript geschrieben das die Sendung für mich aufzeichnet. Nun störte es mich das ich meinen PC immer lauflassen muss dafür. Also dachte ich mir gestern Nacht ich könnte das ja meinen Router machen lassen (Samsung SMTG-3210). Läuft ja eh ein Linux drauf auf dem ich mich einloggen kann. Also schnell einen alten USB Stick an den USB Port des Routers angeschlossen und das Skript ein kleines bisschen modifieziert. Am Ende sah es so aus :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/ash
cd /mnt/usb-storage/UNTITLED_USBest-USB-0
mkdir youfm_nightline
cd youfm_nightline
tag=`date '+%y-%m-%d'`
mkdir ./$tag
cd $tag
LOOP=0
while [ $LOOP -lt 100 ]; do
   uhrzeit=`date '+%H_%M'`
   echo "start recording YouFm @ $tag - $uhrzeit" >> /configs/mylog
   wget -O $uhrzeit.youfm.mp3 http://gffstream.ic.llnwd.net/stream/gffstream_mp3_w72b
   LOOP=`expr $LOOP + 1`
done

Das lief alles soweit. Den Loop hab ich drin falls es mal abbricht, also nur zur Sicherheit. Nun wollte ich das ich das Skript per Crontab starten lassen. Allerdings wird die Crontab bei jedem Neustart auf dem ReadOnly bereich der Firmware gelanden. Also musste ich noch in die /configs/rc.local (wird beim booten ausgeführt) die Änderungen laden lassen. Das lief auch.

Nun komm ich zu BusyBox. BusyBos ist eine kleine Implementation von den Linux Standardtools (ls, mkdir, wget, find, grep, cd, kill, killall, vi, …Wink. Die sind dadurch so klein da die Programme viele Aufrufe wie Datei anlegen, Datei öffnen, usw. auf gleiche weise benötigen und sie so einmal für alle bereitgestellt werden. In der Theorie ist das schön, nur verhalten sich die Programm teilweise sehr unterschiedlich. Das hab ich bemerkt wenn ich das Skript abbrechen lassen will. “killall recYouFm.sh” ging noch (damit schieße ich mein Skript ab. Allerding bringt er bei “killall wget” das er keinen Prozess findet Sad Das heißt die Aufnahme läuft weiter.

Mein erster Workaround war nun einfach ein Reboot um 5.00 Uhr auzuführen (da sollte ich eigendlich im Bett sein). Das Funktionierte auch, allerdings ein bisschen Unschön. Die Inetverbindung mit “killall pppd && /usr/sbin/pppd call pppoe1” neuaufzubauen geht leider zu schnell das sich wget daran stört. Auch gibt es kein awk mitdem ich die ausgabe von “ps au” filtern könnte um die Prozess-ID von wget zu finden. Hat da jemand ne bessere Lösung im Kopf?