Informatik
Cron-Ausdrücke erklärt
Füge die Crontab-Zeile ohne Befehl ein: Du erhältst die Beschreibung in Worten, die Tabelle der Werte für Minuten, Stunden, Tage, Monate und Wochentage und die nächsten Termine, an denen der Job startet.
So liest man eine Crontab-Zeile
Ein Cron-Ausdruck hat fünf Felder: Minute (0-59), Stunde (0-23), Tag des Monats (1-31), Monat (1-12) und Wochentag (0-7, wobei 0 und 7 Sonntag sind). Der Stern bedeutet „beliebig“, das Komma trennt Werte, der Bindestrich gibt einen Bereich an und der Schrägstrich eine Schrittweite: */15 bei den Minuten heißt 0, 15, 30 und 45.
So startet 0 9 * * 1-5 den Job um 9:00 von Montag bis Freitag, 30 2 1 * * um 2:30 am Ersten jedes Monats, */10 * * * * alle zehn Minuten. Makros sind Abkürzungen: @daily entspricht 0 0 * * *, @hourly 0 * * * *, @weekly 0 0 * * 0.
Eine Ausnahme überrascht viele: Weichen sowohl Tag des Monats als auch Wochentag von * ab, führt cron den Job aus, wenn eines von beiden zutrifft. 0 12 1 * 1 heißt nicht „am Ersten, wenn Montag ist“, sondern „an jedem Ersten und jedem Montag“.
Häufige Fehler
- * * * * * schreiben und „einmal am Tag“ meinen: Das bedeutet jede Minute.
- Vergessen, dass cron die Zeitzone des Servers nutzt, nicht die des Betrachters: Die nächsten Ausführungen hier stehen in der Zeitzone deines Browsers.
- Einen Job am 31. jedes Monats erwarten: In Monaten mit 30 Tagen und im Februar läuft er einfach nicht.
Häufige Fragen
Unterstützt cron Sekunden?
Das klassische cron nicht: Die kleinste Einheit ist die Minute. Manche Systeme wie Quartz oder Spring fügen ein sechstes Feld für Sekunden hinzu, mit anderer Syntax.
Was passiert bei der Zeitumstellung?
In der Nacht, in der die Uhr vorgestellt wird, kann ein Job um 2:30 ausfallen; beim Zurückstellen kann er zweimal laufen. Wichtige Jobs plant man daher außerhalb von 2 bis 3 Uhr oder in UTC.
Kann ich Namen von Tagen und Monaten verwenden?
Ja: MON-FRI für die Tage und JAN-DEC für die Monate, auf Englisch und ohne Unterscheidung von Groß- und Kleinschreibung.
So funktioniert diese Berechnung
Jedes Feld wird in die Menge seiner erlaubten Werte aufgelöst: * ist der ganze Bereich, a-b ein Bereich, x/n die Werte ab x in Schritten von n, und durch Kommas getrennte Listen werden vereinigt. Beim Wochentag wird 7 zu 0 (Sonntag). Ein Tag passt, wenn sein Monat erlaubt ist und, falls beide Tagesfelder eingeschränkt sind, wenn der Tag des Monats oder der Wochentag passt. Die nächsten Ausführungen werden Tag für Tag bis zu acht Jahre voraus gesucht, in der Zeitzone des Browsers.
Verwandte Rechner
JSON-Formatierer und -Validator
JSON formatieren, minifizieren und validieren: Einrückung, sortierte Schlüssel und genaue Fehlerposition.
Regex-Tester
Teste einen regulären Ausdruck an einem Text: markierte Treffer, Gruppen und Ersetzung, in JavaScript.
Unix-Zeitstempel-Umrechner
Vom Unix-Zeitstempel zu Datum und Uhrzeit und zurück: Sekunden, Millisekunden, UTC, Ortszeit.