Zum Inhalt springen
LeedyBox
Unterstützen

Cron-Ausdrücke lesen & erstellen

Cron-Ausdrücke für Unix, Spring, Quartz und AWS verstehen, die nächsten Ausführungen in jeder Zeitzone sehen oder einen Ausdruck Feld für Feld zusammenstellen.

Beispiele:

Zeitplan

Aufschlüsselung der Felder

FeldAusdruckWerte

Nächste Ausführungen

    Visueller Editor

    Wählen Sie, wie sich jedes Feld wiederholt. „Bestimmte Werte“ erwartet eine Liste wie 1,15 oder MON,WED, „Bereich“ von–bis wie 9-17, „Alle N“ die Schrittweite.

    Erzeugter Ausdruck
    Sonderzeichen
    *Jeder Wert des Feldes.
    ,Liste von Werten, z. B. 1,15,30.
    -Bereich, z. B. 9-17 oder MON-FRI.
    /Schritt, z. B. */15 = alle 15; 5/15 = ab 5 alle 15 (nicht in Unix-Cron).
    ?Kein bestimmter Wert. Quartz und AWS verlangen ihn entweder bei Tag im Monat oder bei Wochentag.
    LLetzter: L bei Tag im Monat = letzter Tag; L-3 = drei Tage davor; 5L bei Wochentag = letzter Donnerstag (Quartz-Nummerierung).
    WNächster Werktag: 15W = der Werktag, der dem 15. am nächsten liegt; LW = letzter Werktag des Monats.
    #N-ter Wochentag im Monat: 6#3 = dritter Freitag in Quartz/AWS (1 = Sonntag); 5#3 in Spring (0 = Sonntag).
    @daily …Makros: @yearly, @monthly, @weekly, @daily, @hourly; @reboot läuft einmal beim Start.

    Prüfen Sie die Ergebnisse vor der Verwendung. Das Tool wird ohne Gewähr im vorliegenden Zustand bereitgestellt; die Ergebnisse können unvollständig oder falsch sein. Nutzungsbedingungen

    Cron-Implementierungen unterscheiden sich bei Feldreihenfolge, Wochentagsnummerierung und Sonderzeichen. Die nächsten Ausführungen werden in Ihrem Browser für die gewählte Zeitzone berechnet; prüfen Sie den Zeitplan auf dem System, das ihn ausführt.

    So geht's

    1. Geben Sie einen Zeitplan in „Cron-Ausdruck“ ein oder fügen Sie ihn dort ein, oder klicken Sie auf eines der „Beispiele“, wodurch „Format“ zugleich auf „Automatisch erkennen“ gestellt wird. Zusammenfassung und Ausführungszeiten werden während der Eingabe aktualisiert.
    2. Lassen Sie „Format“ auf „Automatisch erkennen“ oder wählen Sie das System, für das der Ausdruck geschrieben ist. Die automatische Erkennung liest 5 Felder als Unix und 7 als Quartz. Bei 6 Feldern wählt sie anhand der Position von „?“ AWS oder Quartz, wählt AWS, wenn das letzte Feld eine Jahreszahl von 1970 bis 2199 enthält, und geht andernfalls von Spring aus. Makros wie @weekly werden als Unix gelesen. Ist der Ausdruck gültig, nennt die Statuszeile das verwendete Format.
    3. Unter „Zeitplan“ und „Aufschlüsselung der Felder“ sehen Sie, welche Werte jedes Feld abdeckt; prüfen Sie dann die Termine unter „Nächste Ausführungen“. „Zeitzone“ ist anfangs auf die Zeitzone Ihres Browsers eingestellt; wählen Sie bei Bedarf eine andere und unter „Anzahl der Ausführungen“ 5, 10 oder 20. Bei anderen Zeitzonen als UTC wird zu jeder Ausführung auch die UTC-Zeit angezeigt.
    4. Um stattdessen einen Ausdruck zusammenzustellen, öffnen Sie den Bereich „Visueller Editor“, wählen ein Format und legen fest, wie sich jedes Feld wiederholt; wo ein Feld einen Wert verlangt, geben Sie ihn ein. „Diesen Ausdruck verwenden“ übernimmt den Inhalt von „Erzeugter Ausdruck“ in „Cron-Ausdruck“, stellt „Format“ auf das Format des Editors und wertet den Ausdruck aus, sodass Sie die Ausführungszeiten prüfen können.

    Häufig gestellte Fragen

    Wird der eingegebene Ausdruck irgendwohin gesendet?

    Nein. Der Ausdruck wird per JavaScript in Ihrem Browser ausgewertet, und auch die Ausführungszeiten werden dort berechnet; er wird nicht zu LeedyBox hochgeladen.

    Warum läuft 0 0 13 * 5 an jedem Freitag und nicht nur an einem Freitag, dem 13.?

    Wenn in Unix-Cron sowohl der Tag im Monat als auch der Wochentag eingeschränkt sind (keines der beiden Felder beginnt mit *), passt ein Tag, sobald eines der beiden Felder passt. Dieser Ausdruck läuft daher am 13. jedes Monats und an jedem Freitag. Das Tool wendet diese Regel auf Unix-Ausdrücke an, und unter „Zeitplan“ steht dann „eines von beiden genügt“. Bei Spring-Ausdrücken verlangt das Tool, dass beide Felder passen, und Quartz und AWS umgehen die Frage, indem sie in einem der beiden Felder „?“ verlangen. In Unix-Cron besteht ein üblicher Ausweg darin, den Job für jeden Freitag einzuplanen und das Datum im Job selbst zu prüfen.

    Ist Sonntag 0, 1 oder 7?

    Das hängt vom Format ab. In Unix- und Spring-Ausdrücken bedeuten 0 und 7 beide Sonntag, und 1 ist Montag; in Quartz und AWS ist 1 Sonntag und 7 Samstag, dort bedeutet 1-5 also Sonntag bis Donnerstag. Mit Tagesnamen wie MON-FRI umgehen Sie diesen Unterschied in Spring, Quartz und AWS.

    Warum wird meine crontab-Zeile oder mein AWS-Ausdruck cron( ) abgelehnt?

    Geben Sie nur die Zeitplanfelder ein. Der Befehl am Ende einer crontab-Zeile und der Benutzername in /etc/crontab werden als zusätzliche Felder gezählt, daher meldet das Tool ein ungültiges Feld oder eine falsche Anzahl von Feldern. Fügen Sie bei AWS nur die sechs Felder ein, die in cron( ) stehen, ohne das umschließende cron( ).

    Wie schreibe ich einen Unix-Ausdruck für Spring, Quartz oder AWS um?

    Spring fügt am Anfang ein Sekundenfeld hinzu, aus 0 9 * * 1-5 wird also 0 0 9 * * 1-5. Quartz braucht zusätzlich „?“ in einem der Tagesfelder und zählt Sonntag als 1, derselbe Zeitplan lautet dort 0 0 9 ? * MON-FRI. AWS hat kein Sekundenfeld, braucht wie Quartz „?“ in einem der Tagesfelder und fügt am Ende ein Jahr hinzu: 0 9 ? * MON-FRI *. Schränkt der Unix-Ausdruck beide Tagesfelder ein, beruht er auf der oben beschriebenen Entweder-oder-Regel, die diese Formate nicht verwenden; meist brauchen Sie dann zwei Zeitpläne. Prüfen Sie das Ergebnis mit dem Zielformat und vergleichen Sie die nächsten Ausführungszeiten.

    Warum meldet das Tool, dass keine Ausführung gefunden wurde?

    Der Ausdruck ist gültig, aber in den rund 8 Jahren, die das Tool im Voraus durchsucht, wurde kein passender Zeitpunkt gefunden. Typische Ursachen sind Daten, die es nicht gibt, etwa 0 0 30 2 * (30. Februar) oder der 31., kombiniert nur mit Monaten, die 30 Tage haben, sowie ein Jahresfeld, das in der Vergangenheit liegt. Ein Jahr, das mehr als 8 Jahre in der Zukunft liegt, führt zur selben Meldung, obwohl der Zeitplan später durchaus ausgeführt werden kann. Manche Scheduler, darunter das klassische Unix-Cron, akzeptieren ein nicht existierendes Datum ohne Warnung, und der Job wird dann nicht ausgeführt.

    Welche Zeitzone wird verwendet, und was ist mit der Sommerzeit?

    Die Ausführungszeiten werden für die unter „Zeitzone“ gewählte Zone berechnet. Wählen Sie die Zeitzone, die Ihr Scheduler verwendet: crontab richtet sich meist nach der Zeitzone des Servers, geplante Regeln in AWS EventBridge verwenden UTC, und beim EventBridge Scheduler können Sie eine Zeitzone festlegen. Das Menü bietet die Zeitzone Ihres Browsers, UTC und eine Auswahl gängiger Zeitzonen; ist die Zeitzone Ihres Schedulers nicht dabei, wählen Sie eine mit derselben UTC-Abweichung und denselben Daten für die Sommerzeitumstellung. Eine Ausführung zu einer Uhrzeit, die beim Vorstellen der Uhren übersprungen wird, fehlt in der Liste, und eine Uhrzeit, die beim Zurückstellen zweimal vorkommt, wird einmal aufgeführt. Cron-Dienste behandeln diese Stunden unterschiedlich; cronie zum Beispiel kann einen Job aus einer übersprungenen Stunde direkt nach der Umstellung ausführen. Prüfen Sie das Verhalten Ihres Schedulers oder verwenden Sie UTC, das keine Sommerzeit kennt.