Am Samstag, 29. September 2001 13.38 schrieb Dirk Försterling:
... Noch ein Beispiel:
first.sh:
# !/bin/bash LS=`/bin/ssh ziel ls` REMDATE=`/bin/ssh ziel date` echo "... ${REMDATE} ... ${LS} ..." > /tmp/test echo `/home/user/bin/another.sh` >> /tmp/test
another.sh:
#! /bin/bash DATE=`/bin/ssh ziel date` echo "... ${DATE} ..."
Das Skript first.sh wird via cron aufgerufen:
00 12 * * * /home/user/bin/first.sh >> /tmp/cronlog 2>&1
Auf SuSE-Linux 7.0 klappt es auf Anhieb. Auf 7.2 passiert gar nichts. Im syslog von ziel taucht nicht mal ein ssh-Connect auf.
Ändere ich den crontab-Eintrag auf
00 12 * * * /home/user/bin/first.sh >> /tmp/cronlog 2>&1 < /dev/null
(Datei - Einleitung, also stdin)
dann läuft das Skript durch bis zum aufruf von another.sh in Backticks. Dieses wird nicht aufgerufen, d.h. es ist in /tmp/test am Ende kein Datum zu finden. Wie gesagt: Diese Konstellation läuft unverändert auf SuSE 7.0. Die Datei /tmp/cronlog enthält bei dem Beispiel nie etwas.
Ich habe hiermit versucht, das Problem auf einen kleinsten Nenner zu bringen. Es geht also nicht darum ob die Skripten korrekt sind, sondern warum hier Teile der Skripten (unter SuSE 7.2) nicht aufgerufen werden, und anscheinend dabei sdtin und/oder stdout eine Rolle spielt was es früher nicht tat.
nur so ne Idee... du benutzt ssh zum "zeil" ohne Passworteingabe, oder? könnter es sein, dass durch das neue System die Schlüssel nicht mehr dieselben wie früher sind und somit das Login gar nicht klappt? Gruss Christian