Log-Einträege und cron

Hallo,ausführe

#!/bin/bash
ping -c 1 62.211.64.8 >> /var/log/messages

von der Konsole ausführe, wird die Ausgabe von ping an die
/var/log/messages angehängt.
Wenn ihc das gleiche Skript mit einem Cronjob aufrufe wird gar nichts
geschrieben.
Weiß jemand was ich falsch mache?
Danke und Grüße
Luigi

Luigi di Lazzaro wrote:

Hallo,ausführe

#!/bin/bash
ping -c 1 62.211.64.8 >> /var/log/messages

von der Konsole ausführe, wird die Ausgabe von ping an die
/var/log/messages angehängt.
Wenn ihc das gleiche Skript mit einem Cronjob aufrufe wird gar nichts
geschrieben.

Cron fuehrt die Scripte zwar unter deiner User-ID aus, aber nicht in
deiner Login-Shell. Das heisst, einige Environment-Variablen sind anders
oder gar nicht definiert:

--- man crontab(5) ---
Several environment variables are set up automatically by the cron(8)
daemon. SHELL is set to /bin/sh, and LOGNAME and HOME are set from the
/etc/passwd line of the crontab's owner. PATH is set to
"/usr/bin:/bin". HOME, SHELL, and PATH may be overridden by settings
in the crontab; LOGNAME may not.
--- end man crontab(5) ---

Es koennte helfen, statt den Komandos den kompletten Pfad zu schreiben
(/user/bin/ping anstatt ping). Den kompletten Pfad zu einem Komando
bekommst du mit dem "which" Befehl:

thomas(a)scar:~$ which ping
/bin/ping

HTH,
Thomas

PS:
Warum cron dir aber nicht eine Fehlermeldung gemailt het, weiss ich
nicht. Normalerweise werden Ausgaben (stdout und stderr) dem User
gemailt. Wenn du die lokale Mailbox nicht liest, solltest du die
Variable MAILTO von cron setzen.

unabhaengig von dem problem warum das nicht funktioniert hat, wuerde ich
dir eher empfehlen "logger" zu verwenden, anstatt an die messages direkt
anzuhaengen.

der syslog sollte der einzige prozess sein der in diese datei schreibt,
ansonsten kann es u.U zu inkonsistenzen kommen.

logger schickt an den syslog und der schreibt dann in die messages.

ping -c 1 blah | logger

ausserdem haengt der dann auch timestamp, hostname usw an.

peter

Hallo Peter, hallo Thomas

[cronjob]

unabhaengig von dem problem warum das nicht funktioniert hat, wuerde
ich dir eher empfehlen "logger" zu verwenden, anstatt an die messages
direkt anzuhaengen.

der syslog sollte der einzige prozess sein der in diese datei
schreibt, ansonsten kann es u.U zu inkonsistenzen kommen.

logger schickt an den syslog und der schreibt dann in die messages.

ping -c 1 blah | logger

ausserdem haengt der dann auch timestamp, hostname usw an.

peter

Alles recht gute Tipps. Ich werde mal vorsichtig probieren (es ist eine
Produktionsmaschine).
Recht herzlichen Dank
Luigi