Hallo!
Ich bastle mir gerade ein Script, um Internetradio über streamripper aufzunehmen. Bislang hatte ich das immer mit cron und einem separaten Script erledigt. Mir war es aber zu umständlich, jedesmal die Anfangszeit in der crontab einzustellen und dann noch die Länge der Aufnahme in dem Script. Nun habe ich an anderer Stelle im Forum den Tipp bekommen, statt mit cron mit at zu arbeiten. Dabei ist folgendes herausgekommmen:
read -p "Wie lange aufnehmen in Sekunden:" seconds read -p "Um wieviel Uhr soll die Aufnahme starten (HH:MM)?" time echo "streamripper http://mp3-live.swr.de/swr2_m.m3u -d ~/RadioMitschnitt -l $seconds > /dev/null 2>&1" | at $time
funktioniert so weit perfekt. Jetzt hat streamripper aber die leidige Angewohnheit, die .mp3-Datei ohne Namen in einem "incomplete"-Ordner abzuspeichern. Dazu hab ich mal folgendes entdeckt, was ich sehr praktisch finde:
DATUM=`date +%d-%m-%y_%RUhr` mv ~/RadioMitschnitt/SWR2/incomplete/*.mp3 ~/RadioMitschnitt/$DATUM.mp3 rm -r ~/RadioMitschnitt/SWR2/
Wenn ich aber beides in einem Script vereinige, kommt natürlich die Fehlermeldung, dass es die Datei xxx nicht umbenennen kann, weil sie noch gar nicht existiert, ist ja klar, die Aufnahme findet in der Zukunft statt... Wie könnte eine elegante Lösung hierfür aussehen, Stichwort loop, sleep oder at (wobei mit at die Zeit, zu der die Datei umbenannt werden soll, aus den Vorgaben errechnet werden müsste?)
Vielen Dank im Voraus für eine Idee.