linux_logo_80.gifWer immer wieder auftauchende Aufgaben automatisch starten lassen will kommt an dem auf den meisten Unix/Linuxbasierten Systemen installierten Programm "cron" nicht herum.

Die Bedienung ist etwas kryptisch, daher wollen wir sie hier erklären. Der zentrale Befehl um cronjobs einzurichten ist:

"crontab"

mit "crontab -l" kann man sich anzeigen lassen welche cronjobs für den aktuell eingeloggten User schon angelegt sind.

Mit "crontab -l > cron.txt" schreibt man die crontab in eine Datei namens cron.txt.

Diese kann man dann mit einem beliebigen Editor bearbeiten und nach erfolgreicher Änderung mit
"crontab cron.txt" wieder einlesen lassen.

Das Ganze geht auch mit "crontab -e", dabei wird aber meist der vi als Editor benutzt mit dem nicht jeder umgehen kann.

Cron Jobs anlegen

Am einfachsten wird es an Beispielen klar was in der crontab angegeben werden muss.
Eine typische Zeile in der crontab beginnt mit Leerzeichen getrennten Angaben wann der Cronjob ausgeführt werden soll gefolgt von dem auszuführenden Befehl:

0 * * * * befehl

oder mit wget als Befehl:

0 * * * * wget -q -O /dev/null https://supportnet.de

Die Null steht hier für Minuten, der erste Stern für Stunden, der zweite Stern für Tage, der dritte für Monate und der letzte Stern für Wochentage, danach folgt der Befehl der um diese Zeiten ausgeführt werden soll (in diesem Fall ein wget, was die Seite des Supportnet lädt und diese dann verwirft).

Diese Zeile bewirkt also, dass wget zu jedem Wochentag, in jedem Monat, an jedem Tag zu jeder Stunde einmal an der Minute "0" ausgeführt wird.

Will man einen Cronjob minütlich ausführen erreicht man das mit folgender Zeile:

* * * * * wget -q -O /dev/null https://supportnet.de

Soll ein Cronjob einmal täglich ausgeführt werden so lautet die Zeile:

0 0 * * * wget -q -O /dev/null https://supportnet.de

Diese Zeile wird zur Minute Null und Stunde Null jeden Tag im Monat ausgeführt. Wenn man will, dass ein Befehl um 8:39 Uhr täglich ausgeführt wird, dann lautet die Eingabe:

39 8 * * * wget -q -O /dev/null https://supportnet.de

Weitere Eingabemöglichkeiten

Will man einen Befehl alle 5 Minuten ausführen lassen so lautet der Eintrag in die crontab:

*/5 * * * * wget -q -O /dev/null https://supportnet.de

Soll dies nur in einer bestimmten Zeitspanne geschehen lautet der Eintrag:

*/5 8-16 * * * wget -q -O /dev/null https://supportnet.de

Jetzt wird der Befehl alle 5 Minuten aber nur zwischen 8 und 16 Uhr ausgeführt (Achtung die Zeitspanne darf die 0 Uhr Grenze nicht überspannen, also 18 bis 4 Uhr Morgens akzeptiert cron nicht, um das zu realisieren muss man zwei Cronjobs anlegen, einer bis 23 Uhr x und einer ab Null Uhr).

Man kann auch Reihen angeben, also z.B. Montag, Dienstag und Freitag:

0 13 * * 1,2,5 wget -q -O /dev/null https://supportnet.de

Hier wird jetzt immer um 13 Uhr am Montag, Dienstag und Freitag die Startseite des Supportnet per wget geladen und gleich wieder verworfen.