Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Problem - Shell und Crontab ergeben nicht das gleiche Ergebnis?

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - Allgemein
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Philipp
Gast





BeitragVerfasst am: 12. Nov 2007 22:46   Titel: Problem - Shell und Crontab ergeben nicht das gleiche Ergebnis?

Hallo Zusammen,

Ich habe ein echtes Problem. Beisse mir ein wenig die Zähne aus.

Ich habe mir folgendes Script geschrieben um zu überprüfen ob mein Server noch online ist.

wget www.example.com/onlinefile.php
x=$(grep 'xyz' /exec/onlinefile.php)

date=$(date)

if [ "$x" = "xyz" ]
then echo $date >> /exec/status.log

else
echo "Seite ist nicht mehr erreichbar." | mail phil@example.co

fi
rm /exec/onlinefile.php

Nun, der Witz daran ist, wenn ich das Programm direkt via Putty ausführe, klappt dies perfekt. Das File onlinefile.php mit dem Inhalt xyz wird heruntergeladen und überprüft. Wenn ich mein Programm nun automatisch mittels crontab laufen lasse, schickt er mir jeweis immer wenn das Programm ausgeführt wird, eine E-Mail. Unabhängig ob der Server online ist oder nicht. Wie kann das sein?

Ich benutze übrigens Debian.
Danke und Gruss
 

Janka



Anmeldungsdatum: 11.02.2006
Beiträge: 3569

BeitragVerfasst am: 13. Nov 2007 1:45   Titel:

cron benutzt höchstwahrscheinlich einen anderen Suchpfad, so dass wget nicht gefunden werden kann und in der Folge grep nicht auf eine aktuelle Datei zugreift.

In cron-Skripten setzt man besser immer explizit den Suchpfad oder gibt absolute Pfade bei jedem Befehl an.

Außerdem solltest du überlegen, statt wget "curl" zu verwenden, womit das ganze Skript ohne temporäre Dateien auskäme.

Janka
_________________
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.
 
Benutzer-Profile anzeigen Private Nachricht senden

Philipp
Gast





BeitragVerfasst am: 13. Nov 2007 10:56   Titel:

Genau das war der Fehler! Vielen Dank für die Hilfe, das Script läuft jetzt perfekt!

Leider kennt mein Debian den Befehl "curl" nicht, gibtes vielleicht eine alternative?

Vielen Dank und ein schöner Tag! Gruss Philipp
 

PDA
Gast





BeitragVerfasst am: 13. Nov 2007 18:27   Titel:

cURL ist ein Programm.

http://curl.haxx.se/
 

Janka



Anmeldungsdatum: 11.02.2006
Beiträge: 3569

BeitragVerfasst am: 13. Nov 2007 23:08   Titel:

"apt-get install curl" sollte dies beheben.

Janka
_________________
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.
 
Benutzer-Profile anzeigen Private Nachricht senden

JochenAlsGast
Gast





BeitragVerfasst am: 22. Nov 2007 15:02   Titel:

Aber warum sollte man dazu unbedingt curl statt wget nehmen muessen?

Code:

PATH=/bin:/usr/bin
export PATH

if wget -q -O - http://www.example.com/onlinefile.php | grep -q 'xyz'; then
    date >> /exec/status.log
else
    echo "Seite ist nicht mehr erreichbar." | mail phil@example.co
fi


Keine überflüssigen Tempfiles, keine überflüssigen Ausgaben, keine überflüssigen Variablen. Und mit der PATH-Angabe sind auch keine absoluten Pfade notwendig.

Jochen
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - Allgemein Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy