/var/spool/cron/crontabs/(USERNAME)

Diese Datei wird mit dem Kommando

crontab -e

Erstellt bzw. editiert. Der Crondaemon liest diese Datei aus und verarbeitet den Inhalt.

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

Zeiten
Vorsicht mit den Zeiten, zu denen ein Job laufen soll:
Nie einen Job für 2 h morgens planen (diese Zeit gibt es bei Sommer /Winterzeitumstellung eventuell nicht)
Der Crondaemon läuft im Kontext des root- Benutzers, also auch zu dessen Zeiten, von denen der Benutzer eventuell nichts weiß.
Wenn unser Benutzer eine andere Zeitzone hat als der Server selber, können dies Zeiten ziemlich auseinander laufen.

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/chris/tmp/*

Eine kleine Anmerkung hierzu..

Man sollte stets die vollen Pfadangaben zu Systemprogrammen oder den eigenen 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/chris/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/chris/tmp/* »/home/chris/cron.log >/dev/null 2>&1