cron führt script in cron.daily nicht aus
Lutz Willek
lutz.willek at belug.de
Mit Apr 2 08:49:19 BST 2008
Keywan Najafi Tonekaboni schrieb:
> Hi,
>
> Am Dienstag, den 01.04.2008, 21:36 +0200 schrieb Thilo Six:
>>> das hat nichts mit dem link zu tun. Versuch mal aus
>>>
>>> "#!/bin/bash" "#!/bin/sh" zu machen.
>> ...also andersherum würde ich das verstehen.
>
> Würde ich auch sagen, aber mein Skript fängt tatsächlich auch mit
> "#!/bin/sh" an.
Wow, ich teste das jetzt auf einem Debian und einem Ubuntu durch.
Der Testlauf wird genau für die Debianmaschine beschrieben, auf dem
Ubunturechner ist er identisch, deshalb poste ich nur die geänderten
Ergebnisse. Die Mail schreibe ich während des Testlaufes mit.
Auf Rechner1, ein Debian Sid:
PS1="root at debian #"
root at debian #cat /etc/debian_version
lenny/sid
root at debian #ls -l /bin/sh
lrwxrwxrwx 1 root root 4 1. Apr 05:26 /bin/sh -> bash*
root at debian #cat <<- EOF > /tmp/testscript
#!/bin/bash
# macht einen Logeintrag, damit man feststellt ob
# das skript läuft
logger "Jaaaaa, der Holzmichel lebt noch (tmp, bash)"
EOF
root at debian #cat <<- EOF > /tmp/testscript2
#!/bin/sh
# macht einen Logeintrag, damit man feststellt ob
# das skript läuft
logger "Jaaaaa, der Holzmichel lebt noch (tmp, sh)"
EOF
root at debian #chmod +x /tmp/testscript
root at debian #chmod +x /tmp/testscript2
root at debian #/tmp/testscript
root at debian #/tmp/testscript2
root at debian #grep Holzmichel /var/log/messages|awk -F: '{print $1":"$2"
"$4 }'
Apr 2 09:12 Jaaaaa, der Holzmichel lebt noch (tmp, bash)
Apr 2 09:12 Jaaaaa, der Holzmichel lebt noch (tmp, sh)
Die beiden "Skripte" laufen also. Jetzt werden die beiden Skripte nach
/etc/cron.daily verlinkt und zusätzlich noch einmal unter einem neuen
Namen dort hin kopiert:
root at debian #ln -s /tmp/testscript /etc/cron.daily/
root at debian #ln -s /tmp/testscript2 /etc/cron.daily/
root at debian #sed 's/tmp, /cron, /' \
</tmp/testscript >/etc/cron.daily/testscript_
root at debian #sed 's/tmp, /cron, /' \
</tmp/testscript2 >/etc/cron.daily/testscript2_
Das ganze sieht so aus:
root at debian #ls -l /etc/cron.daily/test*
lrwxrwxrwx 1 root root 15 2. Apr 09:00 /etc/cron.daily/testscript ->
/tmp/testscript
-rwxr-xr-x 1 root root 137 2. Apr 09:09 /etc/cron.daily/testscript_
lrwxrwxrwx 1 root root 16 2. Apr 09:00 /etc/cron.daily/testscript2 ->
/tmp/testscript2
-rwxr-xr-x 1 root root 133 2. Apr 09:09 /etc/cron.daily/testscript2_
cron.daily wird einmal per Hand angestoßen. Nicht zu Hause nachmachen!
Ich habe vorher alle anderen Skripte aus dem Verzeichnis entfernt.
run-parts --report /etc/cron.daily
und die Ergebnisse sind (trommelwirbel...)
root at debian #grep Holzmichel /var/log/messages|awk -F: '{print $1":"$2"
"$4 }'
Apr 2 09:12 Jaaaaa, der Holzmichel lebt noch (tmp, bash)
Apr 2 09:12 Jaaaaa, der Holzmichel lebt noch (tmp, sh)
Apr 2 09:19 Jaaaaa, der Holzmichel lebt noch (tmp, bash)
Apr 2 09:19 Jaaaaa, der Holzmichel lebt noch (tmp, sh)
Apr 2 09:19 Jaaaaa, der Holzmichel lebt noch (cron, sh)
Apr 2 09:19 Jaaaaa, der Holzmichel lebt noch (cron, bash)
es funktioniert also *immer* auf Debian sid. Das gleiche jetzt auf einem
Ubuntu-Rechner. Dazu habe ich aus meinem Testlauf ein tar erstellt und
auf dem anderen Rechner mitgenommen:
root at debian #tar cf testsuite.tar \
/etc/cron.daily/testscr* \
/tmp/testscr*
Das System auf dem anderen Rechner:
Ubuntu-Server 7.10 _Gutsy Gibbon_ - Release i386 (20071016)]
PS1="root at ubuntu # "
Es existiert ein Unterschied zw. Debian und Ubuntu, das kann aber auch
meinem Setup geschuldet sein:
root at ubuntu # ls -l /bin/sh
lrwxrwxrwx 1 root root 4 1997-01-01 04:33 /bin/sh -> dash
root at ubuntu # cd /
root at ubuntu # tar xvf testsuite.tar
etc/cron.daily/testscript
etc/cron.daily/testscript_
etc/cron.daily/testscript2
etc/cron.daily/testscript2_
tmp/testscript
tmp/testscript2
Dann wurde der Testlauf wieder per Hand angestoßen:
root at ubuntu # run-parts --report /etc/cron.daily
root at ubuntu # grep Holzmichel /var/log/messages|awk -F: '{print $1":"$2"
"$4 }'
Apr 2 09:36 Jaaaaa, der Holzmichel lebt noch (tmp, bash)
Apr 2 09:36 Jaaaaa, der Holzmichel lebt noch (tmp, sh)
Apr 2 09:36 Jaaaaa, der Holzmichel lebt noch (cron, sh)
Apr 2 09:36 Jaaaaa, der Holzmichel lebt noch (cron, bash)
Also auch hier: alle Möglichkeiten funktionieren.
Fazit: an den symbolischen Links kann es nicht direkt liegen, das es
einmal funktioniert und ein anderes mal nicht. Dennoch kenne ich dieses
Problem aus eigener Erfahrung, auch der OP hatte ja die gleichen
Probleme. Es muss also noch ein Detail existieren, das wir übersehen.
Ich werde auf dem Ubunturechner die Dateien liegen lassen und einen
normalen cronlauf abwarten, um den Einfluß von Umgebungsvariablen
auszuschließen. Ich berichte wieder. Bis dort hin: noch irgendwelche
anderen Ideen, an was dieses Verhalten liegen kann?
--
Freundliche Grüße / Best Regards
Lutz Willek
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Have you tried turning it off and on again? ~
~ Bitte denken Sie an die Umwelt bevor Sie diese Mail ausdrucken ~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~