Cronjob Proleme

KingJoshii1000

Lieutenant
Registriert
Apr. 2010
Beiträge
879
Hallo,
ich würde gerne einen Cronjob um 2 Uhr morgens jeden Tag in der Woche laufen lassen.
Dazu habe ich einfach contab -e eingegeben.
Der Cron soll als Root ausgeführt werden.
Das steht in der Datei:
Code:
# m h  dom mon dow   command
0 2 * * 1 /home/server/backup/backup_01.sh
Habe das eben mit 1 Uhr getesten, und die Daten wurden im Zielverzeichnis nicht ersetzt. :(
Wenn ich den Skript per Hand also manuell ausführe dann funktioniert er mit dem oben genannten Pfad.

Wo liegt der Fehler?

MFG
 
Damit es täglich läuft musst du nur die Minute und Stunde angeben. Bei dir ist noch "dow" angegeben, welches für "day of week" steht. Somit führt sich das Skript dann nur (montags?) aus.
 
Hallo,
das heißt wenn ich die 1 durch ein * ersetze, startet er den Skript jeden Tag um 2 Uhr morgens?

MFG
Ergänzung ()

Habe das jetzt auf:
Code:
28 1 * * * /home/server/backup/backup_01.sh
geändert, und es hat nicht funktioniert :(.

MFG
 
eine weitere, mögliche Fehlerursache kann vorliegen, wenn du am Ende der Crontabelle keine leere Zeile hast.
 
So,
hab eine leere Zeile gelöscht, sodass unter einem Eintrag noch eine freie Zeile ist wo nichts steht und den Cronjob auf 1:43 gestellt, der wieder nicht ausgeführt wurde :(.
 
Hi

Hast du dir die Seite mal durchgelesen? http://wiki.ubuntuusers.de/Cron

Eigentlich sollte es so sein:

Code:
#M  S  T  M  W  Befehl
#-------------------------------
0  2  *  *  *  dein Befehl
# hier steht ein Kommentar

Dort steht auch der Hinweis:
Wichtig ist, dass am Ende der Tabelle ein Kommentar oder eine Leerzeile stehen. Ähnlich wie die fstab muss die crontab mit einer Leerzeile enden!

Andere Idee:
Ansonsten ist noch die Frage, ob dein Shellscript ausführbar ist.

Grüße
 
Zuletzt bearbeitet:
kann auch sein, dass Befehle in deinen Script, aufgrund der veränderten PATH Variable nicht verfügbar sind. In dem Falle musst du die kompletten Pfade zum Befehl angeben.
 
Hallo,
ja das Skript ist ausführbar.
Wie gesagt manuell kann ich es starten.

Zurzeit steht es so drin:
Code:
# m h  dom mon dow   command
08  2  *  *  *  /home/server/backup/backup_01.sh
# hier steht ein Kommentar

Was übrigens auch nicht funktionierte :(.
 
Hmm, hast du die Pathvariable gesetzt?

Habe bei mir grade das hier gemacht und hat funktioniert, vielleicht solltest du erstmal ein simples beispiel machen bevor du ein script startest:

Code:
# Shell variable for cron
SHELL=/bin/bash
# PATH variable for cron
PATH=/usr/local/bin:/usr/local/sbin:/sbin:/usr/sbin:/bin:/usr/bin:/usr/bin/X11

15 2 * * * touch /tmp/datei > /dev/null
# das ist ein kommentar

Grüße
 
Na gut, ich werde mich lieber schlafen legen ;) und das morgen gut ausgeschlafen angehen ;).

Danke für eure Hilfe :)

Gute Nacht
Ergänzung ()

Hallo, Situation ist unverändert, hab mir die Seite durchgelesen, und habe auch mal die "#" vor dem Beispiel Cronjob weggemacht um zu gucken ob mein Eintrag falsch ist, aber der standart Cronjob funktioniert auch nicht.

Was genau läuft falsch?
 
Geh doch bitte mal Schritt für Schritt vor. Dir ist noch immer unklar, ob cron überhaupt was tut. D.h. es ist unklar, ob cron selbst nichts tut oder ob nur dein backup_01.sh irgendwie kaputt ist und darum nichts passiert.

DESHLAB: Erstell dir zum Testen folgenden Eintrag in der crontab:

* * * * * /bin/date >> $HOME/crontest

Damit sollte jede Minute eine neue Zeile mit Datum/Uhrzeit an das File $HOME/crontest angehängt werden. So kannst du nachvollziehen, ob cron was tut.

A) Falls nix passiert: Läuft überhaupt der cron-Daemon? Mach "ps -aef" und schau nach ob da ein Prozess namens "cron" da ist.

B) Falls was passiert: Trage wieder dein backup_01.sh in die crontab ein und schreibe ganz oben in deine backup_01.sh sowas wie
/bin/date >> $HOME/crontest2
rein, um wieder ein Feedback zu bekommen, ob das geht oder nicht.
 
Hast du dein Skript ausführbar gemacht? Was passiert, wenn du das Skript direkt (ohne cron) ausführst? Funktionierts da?
 
Stell den Cronjob doch mal auf eine Zeit ein, zu der du das System überwachst. Währenddessen checkst du mal parallel /var/log/syslog auf Meldungen von deinem Cronjob. Ich hab mich heut auch etwas mit nem Cron rumplagen müssen, da hat mir das Error Log viel geholfen.
 
Zurück
Oben