Aus einem kleinen Bash-Script heraus erstelle ich ein FTP-Order-Script in /tmp um eine bestimmte Datei via FTP zu senden. Das Bash-Script startet dieses Order-Script anschließend mit dem folgenden Befehl:
Code: Alles auswählen
$AppFtp -inv < $FTPJob > $LogFile.sndftp
Tja, und jetzt das Dilemma... die letzten 2 Tage habe ich keine Mail bekommen und bin auf die Suche gegangen, warum nicht. Ich habs gefunden, das Bash-Script war nach 14 Stunden noch aktiv und hat drauf gewartet, dass die FTP-Sende-Funktion zurückkommt... aber genau die ist gestorben. Und jetzt weiss ich auch warum.... wie es der perfekte Zufall will, hat sich die DSL-Zwangstrennung eingemischt und den Job während des Sendens sterben lassen.
Ich habe natürlich jetzt erst mal die Zwangstrennung um 2 Stunden nach hinten verlegt, aber das allein isses irgendwie nicht. Jetzt überlege ich, ob ich im Script eine Möglichkeit habe, das zu überwachen. Meine erste Idee war, den obigen Befehl mit & im Hintergrund laufen lassen und direkt dahinter im Script einfach eine vorgegebene Timeout-Zeit darauf zu warten, dass es fertig wird. Ich würde dafür einfach sowas wie ein State-File in /var/run setzen und mit Sende-Fini wieder löschen. Wenns nicht innerhalb des Timeouts fertig wird, kill ich den Hintergrund-Send-Job und benachrichtige mich umgehend über den Fehlschlag. Aber so richtig gefällt mir diese Idee noch nicht.
Gibt es vielleicht eine bessere Lösung? Hat jemand eine bessere Idee?