Crontab bearbeiten

In jedem UNIX System gibt ein Scheduler, der Aufgaben zeitabhängig startet. Dir Crontab Tabelle legt diese Aufgaben fest mit der entsprechenden Uhrzeit oder einem Intervall.

Die Aufgaben können Shell Scripte, PHP oder auch executables sein. der Befehl crontab -l listet die aktuell eingestellten Aufträge. Mit Hilfe des Befehls crontab -e wird ein Editor gestartet der die Einträge bearbeiten läßt.

Crontab Syntax

Jeder Cronjob hat folgendes Format:

Ein Stern * bedeutet Ausführung wird immer erfolgen, also zu jeder Minute, jeder Stunde, jedem Tag, jedem Monat oder jedem Wochentag. Um die einzelnen Stellen auseinander zu halten, hilft folgendes Diagramm:

Für die ersten fünf Stellen, also die Zeitwerte sind folgende Optionen zusätzlich möglich:
* = Ausführung immer (zu jeder…)
*/n = Ausführung aller n
n,x,y = Ausführung um/am n, x und y

Cronjob Beispiele

Als Beispiel soll jede Nacht um 5 Uhr morgens das Skript, würde man den Cronjob folgendermaßen anlegen:

Cronjob-Ausgabe in Logfile umleiten

0 8,17 * * * /usr/bin/script.sh >>/var/log/cron/send_reminder_mail 2>&1

Cronjob-Ausgabe verwerfen

0 8,17 * * * /usr/bin/script.sh >/dev/null 2>&1

/etc/cron* Verzeichnisse

Eine weitere Möglichkeit Cronjobs anzulegen sind die Verzeichnisse unter /etc/cron*, in denen alle enthaltenen Dateien zum bestimmten Zeitpunkt ausgeführt werden. Die Dateien im Einzelnen

/etc/cron.d/ = Erweiterungen zur /etc/crontab-Datei, gleiche Syntax.
/etc/cron.daily/ = Einmal irgendwann täglich.
/etc/cron.hourly/ = Einmal irgendwann stündlich.
/etc/cron.monthly/ = Einmal irgendwann monatlich.
/etc/cron.weekly/ = Einmal irgendwann wöchentlich.

Die letzten vier werden oft genutzt, wenn ein Job in einem bestimmten Interval erledigt werden muß, der genaue Zeitpunkt hierfür aber unerheblich ist.

Weitere Information

Intervall Beispiele: https://crontab.guru/examples.html