Archiv verlassen und diese Seite im Standarddesign anzeigen : cronjob einrichten?
Hallo,
kurze Frage:
Wie richte ich einen cronjob richtig ein?
Möchte, dass der Befehl ntpdate de.pool.ntp.org alle 5 Minuten ausgeführt wird.
Per crontab -e habe ich die leer Konfig editiert und folgenen Eintrag erstellt:
*/5 * * * * ntpdate de.pool.ntp.org
Wir jedoch nicht ausgeführt. Daher habe ich den Befehl in ein Script verpackt time.sh
Dann habe ich die crontab entsprechend angepasst.
*/5 * * * * /script/time.sh
Aber auch so funktioniert es nicht.
Wo liegt mein Fehler?
thx
drummermonkey
27.02.07, 20:49
Mal ganz blöde frage: läuft der Cron-Dienst? :-)
Hast Du das auch in die Crontab von Root eingetragen?
In Deinem letzten Thread wurde ja schon festgestellt, dass ntpdate von Root ausgeführt werden muss.
Also erst in einer Konsole zu Root werden und dann crontab -e ausführen.
Grüße.
craano.
Hallo,
ja ich habe mich als Root auf einer "richtigen" Konsole angemeldet und dort per crontab -e den Eintrag erstellt.
Der cronjob läuft, denke ich zumindest. Um das zu überprüfen gehe ich über KDE auf Services und lasse mir dort alle Dienste anzeigen. cronjob ist aktiviert laut dieser anzeige.
Gibt es evtl. eine Möglichkeit dies auch per Befehl auf der Konsole zu überprüfen?
thx
steht denn was in /var/log/messages?
Ansonsten - bau in das Script mal einfach ein paar debug-Ausgaben ein. Und verwende immer komplette Pfade - da $PATH-Variable ist unter cron nicht gleich gesetzt wie an der Konsole...
Ausführbar ist das Script ja hoffentlich :-)
tazdevil77
28.02.07, 10:18
Hallo,
ja ich habe mich als Root auf einer "richtigen" Konsole angemeldet und dort per crontab -e den Eintrag erstellt.
Der cronjob läuft, denke ich zumindest. Um das zu überprüfen gehe ich über KDE auf Services und lasse mir dort alle Dienste anzeigen. cronjob ist aktiviert laut dieser anzeige.
Gibt es evtl. eine Möglichkeit dies auch per Befehl auf der Konsole zu überprüfen?
thx
mach irgendwo in time.sh ein "echo test" und log einfach mal mit:
*/5 * * * * /script/time.sh > /tmp/cron.log
rico
Hallo,
danke für den Tip mit echo usw.
Also es ist so, dass die echo Meldung in die cron.log alle 5 Minuten geschrieben wird. Somit läuft cronjob. Jedoch wird der ntpdate Befehl nicht ausgeführt. Daraus schließe ich, dass der Job nicht wirklich unter Root ausgeführt wird, obwohl ich als Root crontab -e benutzt habe.
Aber ich hab crontab -e heute über eine ssh verbindung konfiguriert. Sprich, mich als normaler user per ssh an meinem Linux angemeldet und dann su ausgeführt und dann crontab -e. Da ich unter Fedora ja nur RICHTIGER Root bin, wenn ich wirklich physisch vor der Kiste sitze und mich als Root an einer richtigen Konsole anmelde, denke ich dass hier momentan das Problem liegt. Der su ist nicht berechtigt ntpdate auszuführen.
Muss also warten bis heute Abend bis ich zuhause vor der Kiste sitzen kann und dann noch mal als RICHTIGER Root die crontab einzurichten.
thx
Noch mal nachgefragt: benutzt Du absolute und vollständige Pfade?
@slaYer977: schon gelesen?
steht denn was in /var/log/messages?
Ansonsten - bau in das Script mal einfach ein paar debug-Ausgaben ein. Und verwende immer komplette Pfade - da $PATH-Variable ist unter cron nicht gleich gesetzt wie an der Konsole...
Ausführbar ist das Script ja hoffentlich :-)
EDIT:
Der Author des Beitrags war schneller ;-)
tazdevil77
28.02.07, 12:48
Hallo,
danke für den Tip mit echo usw.
Also es ist so, dass die echo Meldung in die cron.log alle 5 Minuten geschrieben wird. Somit läuft cronjob. Jedoch wird der ntpdate Befehl nicht ausgeführt. Daraus schließe ich, dass der Job nicht wirklich unter Root ausgeführt wird, obwohl ich als Root crontab -e benutzt habe.
Aber ich hab crontab -e heute über eine ssh verbindung konfiguriert. Sprich, mich als normaler user per ssh an meinem Linux angemeldet und dann su ausgeführt und dann crontab -e. Da ich unter Fedora ja nur RICHTIGER Root bin, wenn ich wirklich physisch vor der Kiste sitze und mich als Root an einer richtigen Konsole anmelde, denke ich dass hier momentan das Problem liegt. Der su ist nicht berechtigt ntpdate auszuführen.
Muss also warten bis heute Abend bis ich zuhause vor der Kiste sitzen kann und dann noch mal als RICHTIGER Root die crontab einzurichten.
thx
ich denke nicht, dass es daran liegt. wie oben schon geschrieben -> komplette pfade benutzen.
oder du kannst auch einfach die fehlerausgabe vom skript loggen:
*/5 * * * * /script/time.sh &> /tmp/cron.log
dann sollte "command not found" auftauchen.
Wenn es wirklich daran liegen sollte, dass
$ su -
# crontab -e
die Befehle nicht als root ausführt, kannst Du entweder auch sudo benutzen (mit visudo editieren) und dann die crontab Deines Users benutzen, wobei Du dann dem Befehl ein sudo voranstellen musst.
Alternativ kannst Du auch die systemweite Crontab /etc/crontab benützen und zwischen <dow> und <command> denn <user> root eintragen.
Du kannst auch mit
$ su -
# crontab -u root -e
explizit die crontab von root editieren. Ich habe schon mal gelesen, dass wenn man mit su / sudo su den Benutzer wechselt es zu Problemen kommen kann, weil die falsche crontab editiert wird. Da wurde dieser Weg empfohlen.
Grüße.
craano.
Es geht!
marce und tazdevil77 haben recht. Es lag wohl daran, dass ich im Skript nicht absolute Pfade verwendet habe. Habe gestern zu Hause ntpdate durch /usr/sbin/nptdate ausgetauscht und nu geht es.
Dank an alle für Eure Hilfe
-slaYer977-
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.