Zum Inhalt springen

Cron-Ausdrucksgenerator:
wann läuft er wirklich?

Wählen Sie Häufigkeit und Uhrzeit. Der Generator schreibt den Ausdruck mit fünf Feldern, liest ihn in natürlicher Sprache zurück und listet die nächsten zehn Termine auf — so prüfen Sie den Zeitplan, bevor er in einer Crontab landet, und nicht erst nach dem 03:30-Lauf.

Cron-Syntax

So liest man 30 3 * * 1-5

Jeder Cron-Ausdruck beantwortet dieselben fünf Fragen, von links nach rechts — hier an einem echten Zeitplan.

30 Minute 0 – 59 zur halben Stunde
3 Stunde 0 – 23 3 Uhr nachts, Serverzeit
* Tag des Monats 1 – 31 jedes Datum
* Monat 1 – 12 jeder Monat
1-5 Wochentag 0 – 7 · 0 und 7 = So Montag – Freitag

Als Satz gelesen: Montag bis Freitag, um 03:30. 30 3 * * 1-5

Von natürlicher Sprache zur Crontab

Den Zeitplan sehen, bevor Cron ihn ausführt

Die meisten Cron-Ausdrücke werden erstmals vom 03:30-Lauf in der Produktion getestet. Dieser Generator verlegt diesen Test in Ihren Browser:

  • Strukturierte Fragen statt Raten. Häufigkeit, Tag, Uhrzeit — jede Mehrdeutigkeit der Beschreibung in natürlicher Sprache wird zu einem eigenen Bedienelement.
  • Die nächsten zehn Läufe, berechnet. Ein echter Parser geht den Kalender durch, damit Sie den Zeitplan als Termine lesen und nicht als Syntax.
  • Portable POSIX-Ausgabe. Fünf Felder, nur Zahlen — läuft auf jeder Crontab, von Alpine bis AIX. Die exotischen Symbole werden markiert, nicht erzeugt.

Ein Cron-Ausdruck, Feld für Feld

*/15 9-17 * * 1-5
*/15Minute — jeder 15. Wert: :00, :15, :30, :454× / Stunde
9-17Stunde — ein Bereich: 09:00 bis 17:459 Stunden
*Tag des Monats — nicht eingeschränktbeliebig
*Monat — nicht eingeschränktbeliebig
1-5Wochentag — Montag bis Freitagwerktags
Der ganze Satz: alle 15 Minuten, 09:00–17:45, Mo–Fr. Sie brauchen die Gegenrichtung für einen Ausdruck, den Sie nicht selbst geschrieben haben? Dafür gibt es unseren Cron-Übersetzer.
Cron-Symbole

Was *, */5 und @daily bedeuten

Fünf funktionieren in jeder Crontab. Das sechste gibt es nur in Quartz und lässt sich nicht installieren.

*

Passt auf alles — die Voreinstellung und das lauteste Zeichen. Im Minutenfeld bedeutet es sechzig Läufe pro Stunde, und genau dort beginnt das Ticket „Warum lief das 60-mal?“.

→ soll es einmal laufen, schreiben Sie eine Zahl
*/5

Ein Schrittwert — jeder 5. Wert. Schrittwerte greifen nicht über Feldgrenzen hinweg: */90 im Minutenfeld wird stillschweigend zu „um :00“ — ein 90-Minuten-Takt braucht zwei Zeilen.

→ Schrittwerte gelten nur innerhalb eines Feldes
1-5

Ein Bereich — Mo–Fr im Wochentagsfeld, 9–17 im Stundenfeld. Mit einer Liste kombinierbar: 1-5,0 ist werktags plus Sonntag.

→ Bereiche + Listen lassen sich frei kombinieren
0,30

Eine Liste — genaue Werte, durch Komma getrennt. Der portable Weg für „zweimal pro Stunde“ oder „Januar, April, Juli, Oktober“.

→ nennen Sie genau die Werte, die Sie wollen
@daily

Kurznamen — @hourly @daily @weekly @reboot. Praktisch, wo es unterstützt wird, aber @reboot läuft, wenn der Cron-Daemon startet, und das ist nicht immer ein Systemstart.

→ fünf numerische Felder funktionieren in jedem Cron
MON#1

Kein Cron. # L W ? gehören zu Quartz — Jenkins, Spring, einige CI-Werkzeuge. In eine Crontab eingefügt, wird die Zeile nicht installiert.

→ Crontab ist POSIX mit genau 5 Feldern
Rezepte zum Kopieren

Fertige Cron-Zeitpläne

Jeder davon ist gültiges POSIX. Für Sonderfälle wie „jeden 2. März um 17:30“ gibt es unsere Cron-Beispielsammlung.

Jede Minute* * * * *
Alle 5 Minuten*/5 * * * *
Stündlich, zur vollen Stunde0 * * * *
Alle 2 Stunden0 */2 * * *
Nachts um 03:3030 3 * * *
Werktags um 09:000 9 * * 1-5
Sonntags um 02:000 2 * * 0
1. des Monats, 06:000 6 1 * *
Vierteljährlich (Jan · Apr · Jul · Okt, jeweils am 1.)0 6 1 1,4,7,10 *
FAQ

Häufige Fragen zu Cron-Ausdrücken

Er verwandelt einen Zeitplan, den Sie aussprechen können — etwa „jeden Werktag um neun“ — in den Ausdruck mit fünf Feldern, den Cron liest: 0 9 * * 1-5. Dieser hier geht weiter: Er liest den Ausdruck in natürlicher Sprache zurück und berechnet die nächsten zehn Laufzeiten, sodass Sie den Zeitplan als Termine prüfen. Außerdem markiert er die beiden Klassiker: die ODER-Regel der Tagesfelder und den Stern anstelle der Null.

Von links nach rechts: Minute (0–59), Stunde (0–23), Tag des Monats (1–31), Monat (1–12), Wochentag (0–7, wobei sowohl 0 als auch 7 Sonntag bedeuten). Jedes Feld nimmt eine Zahl, eine Liste (0,30), einen Bereich (1-5), einen Schrittwert (*/15) oder * für „beliebig“. Manche Scheduler ergänzen ein sechstes Feld für Sekunden (Quartz, Spring) — eine Crontab akzeptiert es nicht.

Nicht in einer Zeile — Schrittwerte tragen keine Reste über Feldgrenzen, deshalb bedeutet */90 im Minutenfeld nur „um :00“. Die Antwort sind zwei Crontab-Zeilen, die ineinandergreifen: 0 0-21/3 * * * (00:00, 03:00, 06:00…) plus 30 1-22/3 * * * (01:30, 04:30, 07:30…) — zusammen alle 90 Minuten. Derselbe Kniff deckt jeden Takt ab, der 60 nicht glatt teilt.

Weil im Minutenfeld ein * stand. * 3 * * * bedeutet „jede Minute, in der die Stunde 3 ist“ — 03:00 bis 03:59, also sechzig Läufe. Gemeint war 0 3 * * *. Das ist der klassische Cron-Fehler und der Grund, warum dieses Werkzeug immer eine explizite Minute schreibt, sofern Sie nicht ausdrücklich „jede Minute“ wählen.

Cron läuft, sobald eines von beiden passt — Vereinigung, nicht Schnittmenge. So steht es in der POSIX-Spezifikation, und es erwischt viele. Nehmen Sie 0 9 1-7 * 1, den naheliegenden Versuch für „der erste Montag im Monat“. Er läuft an Tag 1–7 und an jedem Montag: 10 oder 11 Vormittage im Monat statt einem. Die Fallenansicht auf dieser Seite berechnet beide Lesarten nebeneinander und zeigt die portable Lösung.

Die lokale Zeit des Servers — Cron hat kein Zeitzonenfeld. Läuft die Maschine auf UTC (die meisten Cloud-Images tun das), sind 09:00 in der Crontab 09:00 UTC. Manche Crons (cronie auf RHEL/Fedora, FreeBSD) werten eine CRON_TZ=-Zeile aus, das klassische Debian-vixie-cron nicht. Und denken Sie an die Zeitumstellung, wenn der Server in einer lokalen Zone läuft: In Umstellungsnächten kann es 02:30 zweimal geben — oder gar nicht. Wer außerhalb von 01:00–03:00 plant oder seine Server auf UTC lässt, umgeht das komplett.

Cron protokolliert, dass es den Job gestartet hat; von sich aus sagt Ihnen nichts, dass er auch geglückt ist. Drei Ebenen: die Ausgabe in ein Log umleiten (>> /var/log/job.log 2>&1), MAILTO= auf eine Adresse setzen, die jemand liest, und dann eine unabhängige Prüfung auf das Ergebnis legen. Die dritte Ebene funktioniert überall dort, wo das Ergebnis von außen sichtbar ist: eine neu erzeugte Seite, ein erneuertes Zertifikat, eine Sitemap. Die Ansicht zu den stillen Fehlern auf dieser Seite geht den ganzen Fehlermodus durch.

Gratis-Tools sind erst der Anfang.
Uptimia hält Ihre Websites am Laufen.

Verfügbarkeit, SSL, Domain-Ablauf, Ladezeit, Transaktionen – aus 171+ Standorten weltweit überwacht. 30 Tage kostenlos.

30 Tage gratis keine Kreditkarte jederzeit kündbar kostenloser Plan nach dem Test
100.000+ überwachte Websites · DSGVO-konform