MiServe DevTools

Ihre Sticker

Heften Sie hier Tools an. Sie werden in diesem Browser gespeichert.

Cron-Ausdrücke erklärt

Lesen Sie einen Cron-Ausdruck Feld für Feld und in einem einfachen Satz, und sehen Sie, wann er als Nächstes ausgeführt wird.

In Worten

Was jedes Feld des Ausdrucks bedeutet
FeldWertBedeutungErlaubte Werte
Minute 0–59
Stunde 0–23
Tag des Monats 1–31
Monat 1–12, JAN–DEC
Wochentag 0–7, SUN–SAT

Nächste Ausführungen

Nr.Ab jetzt

Läuft in Ihrem Browser. Nichts, was Sie einfügen, wird hochgeladen.

Über dieses Tool

Die fünf Felder

Ein Cron-Ausdruck besteht aus fünf durch Leerzeichen getrennten Feldern: Minute (0–59), Stunde (0–23), Tag des Monats (1–31), Monat (1–12) und Wochentag (0–7, wobei 0 und 7 beide Sonntag bedeuten). Cron prüft die Uhr einmal pro Minute und führt den Job aus, wenn Minute, Stunde, Monat und Tag alle zutreffen. Ob der Tag zutrifft, entscheiden die beiden Tagesfelder gemeinsam, nach der weiter unten beschriebenen Regel.

In jedem Feld trifft * auf jeden Wert zu, eine Liste wie 1,15 auf jeden enthaltenen Wert, ein Bereich wie 1-5 auf alles vom ersten bis zum letzten Wert, und ein Schritt wie */15 oder 8-18/2 nimmt jeden N-ten Wert des Bereichs. Monate und Wochentage lassen sich als englische Namen mit drei Buchstaben schreiben, JAN bis DEC und SUN bis SAT.

Die Makros sind Kurzformen: @hourly ist 0 * * * *, @daily und @midnight sind 0 0 * * *, @weekly ist 0 0 * * 0, @monthly ist 0 0 1 * *, und @yearly und @annually sind 0 0 1 1 *.

Wenn beide Tagesfelder gesetzt sind

Tag des Monats und Wochentag schränken sich nicht gegenseitig ein. Sind beide eingeschränkt, läuft der Job an einem Tag, auf den einer der beiden zutrifft. 0 0 13 * 5 läuft daher um Mitternacht am 13. jedes Monats und zusätzlich an jedem Freitag, nicht nur an Freitag, dem 13.

Vixie cron und cronie entscheiden anhand des ersten Zeichens, ob ein Tagesfeld eingeschränkt ist. Ein Feld, das mit * beginnt, auch ein Schritt wie */2, gilt als uneingeschränkt, und dann müssen beide Felder zutreffen. 0 0 */2 * 1 läuft an Montagen, die auf einen ungeraden Tag des Monats fallen. Dieses Tool folgt derselben Regel und sagt Ihnen, welcher der beiden Fälle vorliegt.

Schritte, Zeitzonen und was nicht gelesen wird

Ein Schritt zählt ab dem Beginn des Bereichs und fängt am Ende des Bereichs von vorn an. */15 im Minutenfeld ergibt 0, 15, 30 und 45, also tatsächlich alle 15 Minuten. */7 ergibt 0, 7, 14 und so weiter bis 56, und dann vier Minuten später wieder 0. Die Tabelle listet die Werte auf, zu denen ein Schritt aufgelöst wird, damit Sie das sehen.

Cron vergleicht den Ausdruck mit der Uhr der Maschine, auf der es läuft, und viele Server führen diese Uhr in UTC. Wählen Sie über der Liste der nächsten Ausführungen Ortszeit oder UTC passend zur Maschine, und lesen Sie in der anderen Spalte dieselben Zeitpunkte in der anderen Zone. Wenn die lokale Uhr für die Sommerzeit umgestellt wird, behandeln Cron-Implementierungen Jobs in der übersprungenen oder doppelten Stunde unterschiedlich. Dieses Tool listet keine Ausführung zu einer übersprungenen Uhrzeit, und eine doppelte Uhrzeit nur dann zweimal, wenn das Minuten- oder das Stundenfeld mit * beginnt.

Gelesen wird nur die übliche Syntax mit fünf Feldern. Ein Sekundenfeld, ein Jahresfeld und die Zeichen ?, L, W und # gehören zu anderen Schedulern wie Quartz und werden als Fehler gemeldet. Ebenso ein Schritt nach einem einzelnen Wert wie 5/15: Das Crontab-Handbuch definiert einen Schritt nur nach * oder nach einem Bereich, schreiben Sie also 5-59/15.

Fragen

Was bedeutet */5 in einem Cron-Ausdruck?

Es bedeutet jeden fünften Wert, gezählt ab dem kleinsten Wert, den das Feld erlaubt. Im Minutenfeld sind das die Minuten 0, 5, 10 und so weiter bis 55, der Job läuft also alle fünf Minuten. Im Stundenfeld sind es die Stunden 0, 5, 10, 15 und 20.

Läuft 0 0 13 * 5 nur an Freitag, dem 13.?

Nein. Sind Tag des Monats und Wochentag beide eingeschränkt, führt cron den Job aus, sobald einer der beiden zutrifft. Dieser Ausdruck läuft am 13. jedes Monats und an jedem Freitag.

Ist Sonntag 0 oder 7?

Beides. Das Wochentagsfeld akzeptiert 0 bis 7, und sowohl 0 als auch 7 bedeuten Sonntag. Montag ist 1 und Samstag ist 6. Sie können auch SUN, MON und so weiter schreiben.

Welche Zeitzone verwendet cron?

Cron verwendet die Uhr und die Zeitzone des Systems, auf dem es läuft, sofern Ihr Scheduler nicht erlaubt, eine Zone für den Job festzulegen. Viele Server und gehostete Scheduler laufen in UTC, prüfen Sie das also, bevor Sie von Ortszeit ausgehen.

Weitere Tools in Zeit