Zum Inhalt springen
Quaestio

Cron-Ausdruck erklärt

Das Werkzeug funktioniert in beide Richtungen: Geben Sie einen Zeitplan im Crontab-Format ein, um ihn erklärt zu bekommen, oder beschreiben Sie den Zeitplan in Worten, um den Ausdruck zu erhalten.

Fünf Felder: Minute, Stunde, Tag des Monats, Monat und Wochentag. Ein sechstes Feld für Sekunden darf vorangestellt werden.

Beispiele

Bedeutet

Jede 15. Minute von 5 bis 59, in den Stunden 9–17, am Montag–Freitag

Feld für Feld

FeldAusdruckWerte
Minute5-59/155, 20, 35, 50
Stunde9-179, 10, 11, 12, 13, 14, 15, 16, 17
Tag des Monats*alle
Monat*alle
WochentagMON-FRIMontag, Dienstag, Mittwoch, Donnerstag, Freitag

Nächste Ausführungen

Zeitplan bezogen auf

…

Die Sommerzeit wird wie in Vixie cron und cronie behandelt: Eine feste Uhrzeit läuft einmal, auch wenn die Stunde übersprungen oder wiederholt wird, während Jobs mit * in Minute oder Stunde der neuen Uhr folgen.

Einbetten

Werkzeug auf Ihrer Website einbetten

Kopieren Sie den Code und fügen Sie ihn dort ein, wo das Werkzeug erscheinen soll, etwa in einem Blogbeitrag oder auf einer Schulseite. Es ist kostenlos, der Rahmen enthält keine Werbung, und das Werkzeug rechnet im Browser der Besucher.

So funktioniert es

Ein Cron-Ausdruck hat fünf durch Leerzeichen getrennte Felder: Minute (0–59), Stunde (0–23), Tag des Monats (1–31), Monat (1–12) und Wochentag (0–7, wobei 0 und 7 beide Sonntag sind). Jede Minute prüft cron, ob die Uhr zu allen Feldern passt, und startet in diesem Fall den Job.

In jedem Feld bedeutet * jeden Wert, 1-5 einen Bereich, 1,15 eine Liste und */15 jeden fünfzehnten Wert. Schritte lassen sich auch mit Bereichen kombinieren: 5-59/15 ergibt die Minuten 5, 20, 35 und 50. Monate und Wochentage können als englische Abkürzungen geschrieben werden, JAN–DEC und SUN–SAT.

Sind sowohl der Tag des Monats als auch der Wochentag eingeschränkt, genügt es, wenn einer von beiden passt. 0 0 13 * 5 läuft daher am 13. jedes Monats und an jedem Freitag, nicht nur an Freitag, dem 13. Die Regel stammt aus Vixie cron und gilt auf den meisten Linux-Systemen. Beginnt eines der Felder mit *, auch mit einem Schritt wie */2, müssen beide passen.

Die Makros @hourly, @daily, @weekly, @monthly und @yearly (oder @annually) sind Kurzformen für gängige Zeitpläne, und @reboot führt den Job einmal beim Start von cron aus. Ein sechstes Feld für Sekunden am Anfang, ? für „beliebiger Tag“ und L für den letzten Tag des Monats stammen aus Quartz, Spring und ähnlichen Schedulern; gewöhnliches crontab versteht sie nicht.

Cron richtet sich nach der lokalen Zeit des Computers. Wenn die Sommerzeit beginnt und die Uhr von 02:00 auf 03:00 springt, läuft ein Job mit fester Uhrzeit in der übersprungenen Stunde direkt nach der Umstellung, und wenn die Uhr zurückgestellt wird, läuft er nur einmal. Jobs mit * im Minuten- oder Stundenfeld folgen stattdessen der neuen Uhr. Die Liste hier funktioniert genauso, in Ihrer Zeitzone oder in UTC.

Prüfen Sie, welche Implementierung Ihren Zeitplan ausführt. Clouddienste haben oft eigene Varianten: AWS EventBridge etwa hat sechs Felder mit dem Jahr am Ende und verlangt ? entweder im Tag des Monats oder im Wochentag, und viele Dienste arbeiten in UTC statt in lokaler Zeit.

In die andere Richtung können Sie den Zeitplan auch in Worten beschreiben: „jeden Montag um 9 Uhr“, „alle 15 Minuten“, „am ersten Tag des Monats um 2:30 Uhr“, „an Werktagen zwischen 9 und 17 Uhr“ oder „am letzten Tag des Monats um Mitternacht“. Uhrzeiten werden als 9, 9.30, 9:30 und 09h30 gelesen, Bereiche als 9–17 und Listen als 1, 15. Wird die Formulierung verstanden, erscheint der Ausdruck sofort, und die Erklärung darüber sagt in Worten, was er bedeutet, sodass Sie sehen, ob er dem entspricht, was Sie gemeint haben. Wird sie nicht verstanden, werden die Wörter genannt, die nicht gelesen werden konnten, statt etwas zu erraten.

Der Baukasten unter dem Textfeld leistet dasselbe mit Auswahlfeldern statt Wörtern, und beide bleiben im Gleichschritt: Eine Formulierung füllt die Auswahlfelder aus, und jede Änderung daran schreibt den Ausdruck neu. Nicht alles lässt sich in cron ausdrücken. Im gewöhnlichen crontab gibt es keine Möglichkeit, „den ersten Montag im Monat“ oder „jede zweite Woche“ zu sagen, und zwei verschiedene Uhrzeiten in einer Formulierung (9 und 17 Uhr) werden als Liste im Stundenfeld geschrieben: 0 9,17 * * *.

Quellen

So werden die Werkzeuge geprüft