Shell-Script funktioniert nicht als Cronjob

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
Thomas_v2.1
Beiträge: 18
Registriert: 01.08.2005 11:32:23

Shell-Script funktioniert nicht als Cronjob

Beitrag von Thomas_v2.1 » 07.08.2005 20:41:12

Hallo,
ich versuche einen Cronjob einzurichten, der alle 5 Minuten meinen Router anpingt. Ist der Router offline soll der Rechner runterfahren.
Das Shell-Skript selber funktioniert bei mir und sieht so aus

Code: Alles auswählen

#!/bin/bash
router=192.168.1.1
ping -c 1 $router > /dev/null
if [ $? == 0 ]
then
  echo "Onlinetest: $router ist up"
else
  sleep 5
  ping -c 1 $router > /dev/null
  if [ $? == 0 ]
  then
    echo "Onlinetest: $router is up"
  else
    echo "$router is offline, shutdown"
    shutdown -h now
  fi
fi
Die Datei habe ich mit crontab -e als Cronjob alle 5 Minuten eingetragen (als root). Laut syslog wird der Cronjob auch ausgeführt, nur fährt der Rechner nicht herunter.

Wohin werden also Cronjob eigentlich die echos ausgegeben? Wäre ja auch ganz schön, wenn man irgendwo nachvollziehen kann, dass der Rechner wirklich wegen nicht erreichen des Routers herunterfährt.
[/quote]

Benutzeravatar
peschmae
Beiträge: 4844
Registriert: 07.01.2003 12:50:33
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: nirgendwo im irgendwo

Beitrag von peschmae » 07.08.2005 20:44:26

Die echos kriegst du per Mail geschickt - wenn das Ding root gehört dann kriegt das auch root (bzw. wenn du eingestellt hast der user der root-mails erhält).

Der Fehler liegt hier darin dass in Cron die Umgebungsvariable PATH nicht gesetzt ist - d.h. deine Programme ping (/bin/ping), etc werden nicht gefunden.

MfG Peschmä
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy

Thomas_v2.1
Beiträge: 18
Registriert: 01.08.2005 11:32:23

Beitrag von Thomas_v2.1 » 07.08.2005 21:14:42

Danke, das ging schnell. So gehts.
Aber das mir die echos als Mail geschickt werden, ist ja nicht so schön. Wie würde man das denn linuxtechnisch am besten lösen, wenn ich die Meldung irgenwo nachvollziehen möchte.

Evtl. in eine log-Datei pipen, aber in welche?

Benutzeravatar
peschmae
Beiträge: 4844
Registriert: 07.01.2003 12:50:33
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: nirgendwo im irgendwo

Beitrag von peschmae » 08.08.2005 09:44:50

Thomas_v2.1 hat geschrieben:Danke, das ging schnell. So gehts.
Aber das mir die echos als Mail geschickt werden, ist ja nicht so schön. Wie würde man das denn linuxtechnisch am besten lösen, wenn ich die Meldung irgenwo nachvollziehen möchte.
Wieso nicht schön? Ich finde das recht praktisch. Zumindest wenn man seine Cronjobs so einstellt das Mails nur kommen wenn was schiefläuft :)
Evtl. in eine log-Datei pipen, aber in welche?
Ja, kannst du auch. Welche? Naja, darfst auswählen. Ich würde eine neue machen. Entweder cronjobs.log oder halt für jeden Cronjob eine eigene. Kommt etwas drauf an wieviel und ob man die Meldungen auseinanderhalten kann ;)

MfG Peschmä
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy

Antworten