shell script wir nicht vollstaendig abgearbeitet, wenn Aufruf uebr crontab erfolgt

05/06/2008 - 08:43 von Matthias Dort | Report spam
Hallo,

ich habe hier ein sehr seltsames Phànomen.

Das folgende script (dumpdo) làuft völlig problemlos, wenn es direkt aus der
shell aufgerufen wird. Alle 4 zeilen werden nacheinander einwandfrei
abgearbeitet.


#!/bin/sh

#aktuelle zeit speichern
xdate=`/bin/date +%Y%m%d%H%M%S`

/sbin/dump -0 -f /mnt/backup/sda5-wurzel-$xdate.dump \
/dev/sda5 2>&1|/usr/bin/tee /mnt/backup/dumpdo-$xdate.log

/sbin/dump -0 -f /mnt/backup/sda1-boot-$xdate.dump \
/dev/sda1 2>&1|/usr/bin/tee -a /mnt/backup/dumpdo-$xdate.log

/sbin/dump -0 -f /mnt/backup/sda7-vboximg-$xdate.dump \
/dev/sda7 2>&1|/usr/bin/tee -a /mnt/backup/dumpdo-$xdate.log

/sbin/dump -0 -f /mnt/backup/sda8-trans-$xdate.dump \
/dev/sda8 2>&1|/usr/bin/tee -a /mnt/backup/dumpdo-$xdate.log


Und jetzt kommts: Wird das Script über einen cronjob aufgerufen:

42 7 * * * /root/dumpdo
syslog: (Jun 5 07:42:01 nvcl04 /USR/SBIN/CRON[16686]: (root) CMD
(/root/dumpdo)

passiert folgendes. Es wird in der Regel nur die erste Zeile abgearbeitet.
Manchmal die zweite, aber nie alle 4. Das Script (dump für etx-Filesysteme)
muß natürlich unter root laufen. Im Einsatz ist Ubuntu 7.10.

Ich bin völlig ratlos. Gibt es eine Zeitlimitierung beim Aufruf von Scripten
aus cronjobs heraus? (sehr abenteuerliche Idee ;-) )

Möglicherweise ist das hier etwas OT, aber vielleicht hat ja jemand einen
Tipp.

Vielen Dank im Voraus.

Matthias
 

Lesen sie die antworten

#1 Juergen P. Meier
05/06/2008 - 09:57 | Warnen spam
Matthias Dort :
Das folgende script (dumpdo) làuft völlig problemlos, wenn es direkt aus der
shell aufgerufen wird. Alle 4 zeilen werden nacheinander einwandfrei
abgearbeitet.
Und jetzt kommts: Wird das Script über einen cronjob aufgerufen:

42 7 * * * /root/dumpdo
syslog: (Jun 5 07:42:01 nvcl04 /USR/SBIN/CRON[16686]: (root) CMD
(/root/dumpdo)

passiert folgendes. Es wird in der Regel nur die erste Zeile abgearbeitet.
Manchmal die zweite, aber nie alle 4. Das Script (dump für etx-Filesysteme)
muß natürlich unter root laufen. Im Einsatz ist Ubuntu 7.10.



Wenn Ubuntu den selben cron verwendet wir debian, sollte es keine
speziellen limits fuer cronjobs geben. Auch verwendest du absolute
Pfade, womit eine haeufige Fehlerquelle ausgeschlossen wurde.

Du koenntest zur Diagnose einmal ein #!/bin/sh -x in die
Script-zeile oben hin schreiben, oder den Cronjob so aufrufen:
42 7 * * * /bin/sh -x 2>/tmp/dumpdo.debug /root/dumpdo
Und schauen, was im debug-output der Shell steht.

Auch ein beherztes "ps axf | grep dump" mitten in der Woche sollte
zeigen, ob der Cronjob einfach nur irgendwo haengen bleibt.

Was steht in der Mail von cron, die vermutlich an root geschickt wird?
(/var/spool/mail/root oder /var/mail/root, z.B. mit mutt -f o.ae. zu
lesen, sofern keine Weiterleitung stattfindet)

Juergen
Juergen P. Meier - "This World is about to be Destroyed!"
end
If you think technology can solve your problems you don't understand
technology and you don't understand your problems. (Bruce Schneier)

Ähnliche fragen