1 - Was ist ein Cronjob?
Ein "Cronjob" beschreibt eine wiederkehrende Aufgabe, die in definierten Abständen automatisch auf einem System (Linux, MacOS, etc.) ausgeführt wird.
Typische Anwendungsfälle für Cronjobs sind dabei:
Backups: z. B. automatische Sicherung von Datenbanken jeden Tag um 03:00 Uhr
Bereinigung: z. B. automatisches Löschen von temporären Dateien oder alten Logs jeden Sonntag
Updates: z. B. regelmäßige Überprüfung auf Software-Aktualisierungen
E-Mail-Versand: z. B. automatischer Versand von Newslettern oder täglichen Berichten
Das entsprechende Paket "cron" ist bei den meisten Linux-Systemen bereits vorinstalliert.
2 - Aufbau eines Cronjobs
2.1 - Cronjob Syntax
Ein Cronjob ist in 5 Zeitfelder aufgeteilt, gefolgt vom auszuführenden Befehl:
Minute
Das erste Feld eines Cronjobs steht für die Minute und bestimmt, zu welcher Minute der jeweiligen Stunde der Befehl ausgeführt werden soll.
Im Feld "Minute" können Werte von 0 bis 59 eingetragen werden.
Ein Stern * bedeutet, dass der Befehl jede Minute ausgeführt wird.
Eine feste Zahl (z. B. 15) bedeutet, dass der Befehl jede Stunde genau zur 15. Minute ausgeführt wird (z. B. 08:15, 09:15).
Mit einem Schrägstrich (z. B. */15) wird der Befehl alle 15 Minuten ausgeführt (z. B. 08:00, 08:15, 08:30, 08:45, 09:00, ...)
Ein Bindestrich (z. B. 1-5) führt den Befehl in den ersten 5 Minuten jeder Stunde aus.
Mehrere Werte können durch Kommas getrennt werden (z. B. 5,25,40) und bedeuten, dass der Befehl zu der jeweiligen Minute ausgeführt werden soll (z. B. 10:05, 10:25, 10:40).
Stunde
Das zweite Feld eines Cronjobs steht für die Stunde und bestimmt, zu welcher Stunde des jeweiligen Tages der Befehl ausgeführt werden soll.
Im Feld "Stunde" können Werte von 0 bis 23 eingetragen werden, 0 steht dabei für Mitternacht und 12 für Mittag.
Ein Stern * bedeutet, dass der Befehl zu jeder vollen Stunde des Tages ausgeführt werden soll.
Eine feste Zahl (z. B. 8) bedeutet, dass der Befehl jeden Tag zur 8. Stunde ausgeführt werden soll.
Mit einem Schrägstrich (z. B. */2) wird der Befehl alle 2 Stunden ausgeführt (z. B. 0 Uhr, 2 Uhr, 4 Uhr, ...)
Ein Bindestrich (z. B. 9-17) führt den Befehl jede Stunde von 9 bis 17 Uhr aus.
Mehrere Werte können durch Kommas getrennt werden (z. B. 2,14,21) und bedeuten, dass der Befehl um 02:00 Uhr, 14:00 Uhr und 21:00 Uhr ausgeführt werden soll.
Tag (des Monats)
Das dritte Feld beim Cronjob legt den Kalendertag fest, an dem der Befehl ausgeführt werden soll.
Im Feld "Tag" können Werte von 1 bis 31 angegeben werden.
Ein Stern * bedeutet, dass der Befehl jeden Tag ausgeführt wird.
Eine feste Zahl (z. B. 4) bedeutet, dass der Befehl immer am 4. Tag des Monats ausgeführt wird.
Mit einem Schrägstrich (z. B. */2) wird der Befehl jeden 2. Tag ausgeführt.
Ein Bindestrich (z. B. 20-25) führt den Befehl innerhalb eines angegebenen Bereichs (z. B. vom 20. bis zum 25.) aus.
Mehrere Werte können durch Kommas getrennt werden (z. B. 5,17,26) und bedeuten, dass der Befehl zu allen diesen explizit genannten Tagen ausgeführt wird.
Monat
Das vierte Feld beim Cronjob steht für den Monat, in dem der Befehl ausgeführt werden soll.
Im Feld "Monat" können Werte von 1 bis 12 oder von JAN bis DEC angegeben werden (JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC).
Ein Stern * bedeutet, dass der Befehl jeden Monat ausgeführt werden soll.
Eine feste Zahl (z. B. 3) bedeutet, dass der Befehl nur in diesem spezifischen Monat (hier: März) ausgeführt werden soll.
Mit einem Schrägstrich (z. B. */3) wird der Befehl alle 3 Monate ausgeführt.
Ein Bindestrich (z. B. 3-7) führt den Befehl nur in einem bestimmten Monatsbereich (hier: von März bis Juli) aus.
Mehrere Werte können durch Kommas getrennt werden (z. B. 1,6,12) und bedeuten, dass der Befehl nur in den definierten Monaten (hier: Jänner, Juni, Dezember) ausgeführt werden soll.
Wochentag
Das fünfte Feld beim Cronjob steht für den Wochentag, an dem der Befehl ausgeführt werden soll.
Im Feld "Wochentag" können Werte von 0 bis 7 (wobei 0 und 7 für Sonntag stehen) bzw. die Kürzel SUN bis SAT angegeben werden (SUN, MON, TUE, WED, THU, FRI, SAT).
Ein Stern * bedeutet, dass der Befehl an jedem Wochentag ausgeführt werden soll.
Eine feste Zahl (z. B. 3) bedeutet, dass der Befehl nur an diesem spezifischen Wochentag (hier: Mittwoch) ausgeführt werden soll.
Mit einem Schrägstrich (z. B. */2) wird der Befehl jeden zweiten Wochentag ausgeführt (Sonntag, Dienstag, Donnerstag, Samstag).
Ein Bindestrich (z. B. 1-5) führt den Befehl innerhalb des angegebenen Bereichs von Wochentagen (hier: Montag bis Freitag) aus.
Mehrere Werte können durch Kommas getrennt werden (z. B. 1,3,5) und bedeuten, dass der Befehl zu allen genannten Wochentagen (hier: Montag, Mittwoch, Freitag) ausgeführt werden soll.
auszuführender Befehl
Nach den Zeitfeldern folgt im Cronjob das Befehlsfeld. Hier wird der genaue Befehl, das Skript oder das Programm angegeben, das zu den definierten Zeitpunkten ausgeführt werden soll.
2.2 - Cronjob-Beispiele
Nachfolgend finden Sie einige Beispiel-Cronjobs.
2.2.1 - jede Minute
* * * * * /home/user/skript.sh
2.2.2 - alle 5 Minuten
*/5 * * * * /home/user/skript.sh
2.2.3 - jede volle Stunde
0 * * * * /home/user/skript.sh
2.2.4 - alle 5 Stunden
0 */5 * * * /home/user/skript.sh
2.2.5 - jeden Tag (um Mitternacht)
0 0 * * * /home/user/skript.sh
2.2.6 - alle 5 Tage
0 0 */5 * * /home/user/skript.sh
2.2.7 - jeden Tag um 02:15 Uhr morgens
15 2 * * * /home/user/skript.sh
2.2.8 - jeden Sonntag um 23:00 Uhr abends
0 23 * * 0 /home/user/skript.sh
2.2.9 - nur an Werktagen (Montag bis Freitag) um 02:00 Uhr
0 2 * * 1-5 /home/user/skript.sh
3 - Wie richte ich einen Cronjob auf meinem internex Server ein?
3.1 - Webspace, Managed WordPress
Wenn es sich bei Ihrem Paket um einen Webspace oder ein Managed WordPress handelt, können Sie uns den gewünschten Cronjob gerne per Ticket an [email protected] zukommen lassen.
3.2 - Managed Server, vServer
Wenn es sich bei Ihrem Produkt um einen Managed Server oder vServer handelt, können Sie den Cronjob direkt über die SSH-Verbindung einrichten.
Syntax-Unterstützung
Erstellen Sie zunächst den gewünschten Cronjob. Zur Unterstützung können Sie folgende Website verwenden: https://crontab.guru/
SSH-Verbindung aufbauen
Verbinden Sie sich per SSH mit dem entsprechenden Server, wo Sie den Cronjob einrichten möchten.
Crontab öffnen / Editor starten
Geben Sie den Befehl
crontab -e
ein, um die Konfiguration zu starten. Die Datei öffnet sich im Texteditor Ihrer Wahl, z. B. Nano.
Cronjob eintragen
Fügen Sie den gewünschten Cronjob am Ende der Datei ein. Stellen Sie sicher, dass alle fünf Zeitfelder korrekt gesetzt sind.
Speichern und Schließen
Speichern Sie die Datei (in Nano mit STRG+S) und schließen Sie den Editor (in Nano mit STRG+X). Die erfolgreiche Eintragung wird mit der Meldung "crontab: installing new crontab" bestätigt.
Cronjobs überprüfen
Einzelne Cronjobs werden in einer Tabelle auf dem System gespeichert. Mit dem Befehl
crontab -l
kann man die aktuell eingerichteten Cronjobs einsehen.

