Cronjobs

30. März 2013

Cronjobs unter Linux einrichten Was ist ein Cronjob Ein Cronjob ist eine Aufgabe die sich in einem bestimmten Interval wiederholt. Ein Cronjob kann wie eine Aufgabe zu sein, jeden Samstag Morgen staub zu saugen. Diese Aufgabe wird dann immer um eine bestimmte Zeit ausgeführt. Wie funktioniert ein Cronjob Die Befehle werden in einer Liste, der […]

Cronjobs

Cronjobs unter Linux einrichten

Was ist ein Cronjob

Ein Cronjob ist eine Aufgabe die sich in einem bestimmten Interval wiederholt. Ein Cronjob kann wie eine Aufgabe zu sein, jeden Samstag Morgen staub zu saugen. Diese Aufgabe wird dann immer um eine bestimmte Zeit ausgeführt.

Wie funktioniert ein Cronjob

Die Befehle werden in einer Liste, der sogenannten crontab gespeichert. In dieser Liste kann man von Prgrammstarts, über Aufgaben via PHP bis hin Neustarts alles regulieren. Bei Debian findet man die Crontabs unter den jeweiligen Usern. /var/spool/cron/crontabs/(USERNAME) Per Kommando wird der Default Editor mit der Liste geöffnet. crontab -e

Der Aufbau einer crontab

Eine Crontab besteht aus 6 Spalten. Die ersten 5 sind ausschliesslich für die Zeitangabe gedacht, die 6. für den auszuführenden Befehl. Die ersten 5 setzen sich wie folgt zusammen.
  • 0-59 ( Minuten )
  • 0-23 ( Stunden )
  • 1-31 ( Tage )
  • 1-12 ( Monate )
  • 0-7 ( Wochentage ( 0 und 7 = Sonntag ) )
Anstelle der Zahlen lassen sich auch noch andere Zeichen einsetzen. (*)Dieser bewirken das der Job an dieser Stelle ALLEN werten entsprechen soll. 5 * * * * /script.sh Dieser Job würde 5 Minuten nach jeder Stunde ausgeführt. (,) Mehrere Zeitperioden abdecken. 5,45 * * * * /script.sh Dieser Job würde alle 5 und 35 Minuten nach jeder Stunde ausgeführt. (/) Schrittweise */5 * * * * /script.sh Dieser Job wird alle 5 Minuten ausgeführt. (-) Gibt einen Zeitraum an 0 12-14 * * * /script.sh Dieser Job läuft von 12-14 Uhr jede volle Stunde Die 6. Position sagt aus WAS passieren soll. Dies kann ein einzelner Befehl sein oder ein Script. Möchte man beispielsweise jeden Abend nach Feierabend sein Temp Verzeichnis löschen so könnte Man das folgendermaßen erreichen 0 19 * * * /usr/bin/rm –f /home/{USER}/tmp/* Eine kleine Anmerkung hierzu.. Man sollte stets die vollen Pfadangaben zu Systemprogrammen oder deneigenen Scripten angeben oder im crontab folgendes in die erste Zeile schreiben. # Hier die gewünschten Pfade einsetzen PATH=/usr/bin:/usr/sbin:/sbin:/bin

Zusätze

Viele fragen sich „Warum bekomme ich ständig eine Email wenn mein Cronjob läuft“ Mit dieser Email wird dem User mitgeteilt das der Job ausgeführt wurde oder auch nicht. Wenn alles zur Zufriedenheit läuft könnte man diese Email auch abschalten oder in eine Logdatei umleiten. Abschalten lässt sich diese Email indem man >/dev/null 2>&1 hinter seinen Befehl schreibt. 0 19 * * * /usr/bin/rm –f /home/{USER}/tmp/* >/dev/null 2>&1 Jegliche ausgabe die das Script oder der Crondaemon erzeugt wird somit in den Linux Mülleimer /dev/null Umgeleitet. Wer die Email zwar abschalten aber nicht direkt wegschmeissen möchte, der kann diese auch in eine Logdatei umleiten. 0 19 * * * /usr/bin/rm –f /home/{USER}/tmp/* >>/home/{USER}/cron.log >/dev/null 2>&1
#* * * * * command to be executed #- – - – - #| | | | | #| | | | +—– day of week (0 – 6) (Sunday=0) #| | | +——- month (1 – 12) #| | +——— day of month (1 – 31) #| +———– hour (0 – 23) #+————- min (0 – 59)

Kommentare

Kommentare werden geladen...

Weitere Beiträge