Hallo Werner, Werner Mahr <werner@vollstreckernet.de> (Fr 22 Mai 2009 14:27:00 CEST): > Servus, > > bin mal wieder am versuchen einen upload zu automatisieren. Das Skript > sieht so aus: > > #!/bin/sh -x > > webdir=/usr/server/www/tb/ > stamp=/tmp/uploading > script_cmd="/usr/bin/script -f -c" > upload_cmd="/usr/bin/lftp -f" > script_file=${webdir}upload_script > > if [ -e ${stamp} ] ; then > exit 0 > fi > > if [ -e ${script_file} ] ; then > touch ${stamp} > rev=`head -1 ${script_file} | sed -e 's/#//'` > logfile=${webdir}logs/${rev}.log > ${script_cmd} "${upload_cmd} ${script_file}" ${logfile} > rm ${script_file} > rm ${stamp} > fi > > Ja, ich weiß da sind ein Haufen Variablen drin, aber ich habs halt gerne > universal. Mein Problem ist die Zeile vor den beiden rm. Um zu > erleichtern, die Zeile wird zu: > > /usr/bin/script -f -c "/usr/bin/lftp -f \ > /usr/server/www/tb/upload_script" /usr/server/www/tb/logs/9566- > tarball.log > > Das Problem ist einfach nur, dass der Befehl gestartet wird, und sofort > zum nächsten Befehl weitergesprungen wird, der dann die übergebene Datei > löscht. Das passiert allerdings nur, wenn das script von cron ausgeführt > wird, beim manuellen Aufruf auf der Shell läuft es wie erwartet. > > Muss ich da irgendwas besonderes in der crontab mit eintragen, oder > woran liegt sowas? Normalerweise lautet die Antwort "PATH", aber ich denke, hier ist das nicht relevant, da Du ${script_cmd} ja mit Pfad verwendest. Aber möglicherweise geht die Zeile vor dem Löschen ja aus anderen Gründen sehr schnell zu Ende - wegen irgend eines bösen Fehlers. Du könntest ein "time" davor schreiben, um mal zu sehen, wie lange das dauert. Du könntest nach ${script_cmd} mal nach dem Exit-Status gucken, ob der sich unterscheidet von dem, den Du erwartet hättest. Was schickt Dir Cron in seiner Mail? (Es müsste ja etwas schicken, wegen des "-x".) -- Heiko
Attachment:
signature.asc
Description: Digital signature