RunToolz iconRunToolz
Welcome to RunToolz!
CronAutomatisierungDevOps

Cron-Ausdrücke: Alles planen ohne Rätselraten

Diese kryptischen Planungs-Strings endlich erklärt. Schreibe Cron-Ausdrücke, die beim ersten Mal funktionieren.

RunToolz Team25. Januar 20263 min read

0 0 * * * – was bedeutet das?

Wenn du AWS Lambda, GitHub Actions oder einen Task-Scheduler verwendet hast, hast du Cron-Ausdrücke gesehen. Fünf oder sechs kryptische Felder, die irgendwie Jobs planen.

Sie sind nicht so kompliziert, wie sie aussehen.

Die fünf Felder

┌───────────── Minute (0 - 59)
│ ┌───────────── Stunde (0 - 23)
│ │ ┌───────────── Tag des Monats (1 - 31)
│ │ │ ┌───────────── Monat (1 - 12)
│ │ │ │ ┌───────────── Wochentag (0 - 6, Sonntag = 0)
│ │ │ │ │
* * * * *

Jedes Feld begrenzt, wann der Job läuft. Ein * bedeutet „jeder". Eine Zahl bedeutet „nur dieser Wert".

Möchten Sie es selbst ausprobieren?Cron-Ausdruck analysieren

Beispiele lesen

0 0 * * * — Minute 0, Stunde 0, jeder Tag, jeder Monat, jeder Wochentag = Mitternacht jeden Tag

30 8 * * 1-5 — 8:30 Uhr, Montag bis Freitag = Werktags morgens

0 */2 * * * — Alle 2 Stunden = 2 Uhr, 4 Uhr, 6 Uhr...

0 9 1 * * — 9 Uhr am 1. jeden Monats = Monatlicher Berichts-Zeitpunkt

Spezielle Zeichen

* — Jeder Wert (jede Minute, jede Stunde, etc.)

, — Mehrere Werte. 1,15 bedeutet der 1. und 15.

- — Bereich. 1-5 bedeutet 1 bis 5.

/ — Schritt. */15 bedeutet alle 15. */15 im Minutenfeld = alle 15 Minuten.

Häufige Muster

Alle 5 Minuten: */5 * * * *

Jede Stunde um :30: 30 * * * *

Täglich um 3 Uhr: 0 3 * * *

Wöchentlich sonntags um Mitternacht: 0 0 * * 0

Erster Tag des Monats um 9 Uhr: 0 9 1 * *

Werktags um 18 Uhr: 0 18 * * 1-5

Die Fallstricke

Wochentag vs. Tag des Monats. Wenn du beide setzt, machen die meisten Systeme ein ODER daraus. 0 0 1 * 1 läuft am 1. UND jeden Montag, nicht nur an Montagen, die der 1. sind.

Zeitzone ist wichtig. Die meisten Cron-Systeme verwenden Serverzeit oder UTC. Wisse, mit welcher du es zu tun hast.

6-Felder vs. 5-Felder. Einige Systeme fügen ein Sekundenfeld am Anfang hinzu. 0 0 0 * * * wäre Mitternacht mit einem Sekundenfeld.

Sonntag = 0 oder 7. Hängt vom System ab. Beide funktionieren normalerweise für Sonntag.

Testen vor der Bereitstellung

Rate nicht, ob 0 0 */2 * * alle 2 Tage oder alle 2 Stunden läuft. Verwende einen Cron-Parser.

Gehe ein paar erwartete Auslösezeiten durch. Stelle sicher, dass sie deiner Absicht entsprechen.

Für kritische Jobs richte Monitoring ein. Ein Cron-Ausdruck, der um ein Feld falsch ist, kann deinen täglichen Job stündlich ausführen – oder deinen stündlichen Job jährlich.

Alternativen zu Cron

Englische Syntax. Einige Scheduler akzeptieren „jeden Tag um 15 Uhr" statt 0 15 * * *. Klarer, aber weniger portabel.

Rate-Ausdrücke. AWS verwendet rate(5 minutes) neben Cron-Ausdrücken. Einfacher für simple Intervalle.

Systemd-Timer. Linux-Alternative zu Cron mit besserem Logging und Abhängigkeitsmanagement.


Cron-Ausdrücke sind dicht, aber erlernbar. Fünf Felder, jedes begrenzt, wann Jobs laufen. Teste deine Ausdrücke, beachte deine Zeitzonen, und du wirst alles zuverlässig planen.