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:
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