Zum Hauptinhalt springen

Wie richte ich einen Cronjob ein?

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.

Hat dies deine Frage beantwortet?