Baue einen Cron-Zeitplan mit Dropdowns oder füge einen ein, um ihn im Klartext zu lesen. Sieh die nächsten 10 Läufe in deiner Zeitzone und kopiere ihn für crontab, GitHub Actions, Vercel oder Kubernetes.
Cron-Expression-Generator
Ein Cron-Ausdruck besteht aus fünf durch Leerzeichen getrennten Feldern: Minute, Stunde, Tag des Monats, Monat und Wochentag. */5 * * * * läuft alle fünf Minuten; 0 9 * * 1-5 läuft werktags um 9:00. Baue einen mit den Dropdowns oder füge deinen eigenen ein, um ihn erklärt zu bekommen und die nächsten zehn Laufzeiten zu sehen.
Die fünf Felder in ihrer Reihenfolge
Feld
Erlaubte Werte
Minute
Stunde
Tag des Monats
Monat
1-12 oder JAN-DEC
Wochentag
0-7 oder SUN-SAT (0 und 7 sind Sonntag)
Wähle die Werte Feld für Feld oder füge einen Ausdruck ein. Das Tool erklärt ihn im Klartext, markiert Fehler, listet die nächsten zehn Läufe in jeder Zeitzone auf und gibt dir denselben Zeitplan fertig für crontab, GitHub Actions, Vercel und Kubernetes.
Tippe einen Ausdruck in das Feld, füge ihn ein oder klicke auf eine der Vorlagen. Kurzformen wie @daily und @weekly funktionieren auch.
Oder nutze den Builder: Für jedes der fünf Felder kannst du zwischen jeder, alle N, bestimmten Werten oder einem Bereich wählen. Der Ausdruck aktualisiert sich bei jeder Auswahl.
Lies die Klartextzeile, um zu prüfen, ob der Zeitplan das sagt, was du gemeint hast. Fehler wie eine Minute 61 oder ein fehlendes Feld werden benannt.
Wähle eine Zeitzone, um die nächsten zehn Läufe so zu sehen, wie sie dort stattfinden würden, einschließlich Zeitumstellungen.
Kopiere den Zeitplan in dem Format, das deine Plattform erwartet. Alles läuft in deinem Browser.
Die meisten gehosteten Scheduler, darunter GitHub Actions und Vercel-Cronjobs, lesen den Zeitplan in UTC. Rechne deine Ortszeit vor dem Speichern um, sonst läuft der Job Stunden zu früh oder zu spät.
Wenn du sowohl das Feld Tag des Monats als auch das Feld Wochentag ausfüllst, führt cron den Job aus, wenn eines davon passt, nicht wenn beide passen. 0 0 13 * 5 läuft an jedem 13. und an jedem Freitag, nicht nur an Freitag, dem 13.
Wähle eine ungerade Minute wie 17 3 * * * statt 0 0 * * *. Sehr viele Jobs sind auf die volle Stunde gesetzt, daher sind geteilte Dienste und gehostete Runner dann am stärksten ausgelastet.
Jobs, die zwischen 01:00 und 03:00 Ortszeit geplant sind, können bei der Zeitumstellung übersprungen oder doppelt ausgeführt werden. Plane kritische Jobs in UTC oder außerhalb dieses Zeitfensters.
GitHub Actions führt Zeitpläne nicht häufiger als alle 5 Minuten aus und kann sie verspätet starten, wenn die Runner ausgelastet sind. Verlass dich dort also nicht auf exaktes Timing.
Häufige Fragen
Wie schreibe ich einen Cronjob, der alle 5 Minuten läuft?
Verwende */5 * * * *. Das */5 im Minutenfeld bedeutet jede fünfte Minute ab 0, er läuft also um :00, :05, :10 und so weiter. Für alle 10 oder 15 Minuten änderst du die Zahl auf 10 oder 15.
Was bedeutet */ in cron?
Der Schrägstrich legt eine Schrittweite fest. */15 im Minutenfeld bedeutet jede 15. Minute der Stunde: 0, 15, 30 und 45. Du kannst auch durch einen Bereich gehen: 9-17/2 im Stundenfeld bedeutet 9, 11, 13, 15 und 17.
Ist Sonntag in cron 0 oder 7?
Beides. Standard-cron akzeptiert 0 und 7 für Sonntag, dann 1 für Montag bis 6 für Samstag. Tagesnamen wie SUN und MON umgehen die Frage ganz.
Warum hat mein Ausdruck sechs oder sieben Felder?
Quartz, Spring und einige Cloud-Scheduler fügen am Anfang ein Sekundenfeld und manchmal am Ende ein Jahr hinzu. Standard-crontab, GitHub Actions, Vercel und Kubernetes nutzen fünf Felder. Dieses Tool liest die Form mit fünf Feldern; lass das Sekundenfeld weg, um den Rest zu prüfen.
Welche Zeitzone verwendet cron?
Eine crontab nutzt die Zeitzone des Servers, auf dem sie läuft, außer das System unterstützt eine Einstellung CRON_TZ oder TZ. GitHub Actions und Vercel nutzen UTC. Kubernetes-CronJobs nutzen die Zeitzone des Controllers, außer du setzt das Feld timeZone in der Spezifikation.
So liest du einen Cron-Ausdruck
Lies die Felder von links nach rechts: in dieser Minute, dieser Stunde, an diesem Tag des Monats, in diesem Monat, an diesem Wochentag. Ein Stern bedeutet jeden Wert. 30 6 * * 1 liest sich also: in Minute 30 der Stunde 6, an jedem Tag des Monats, in jedem Monat, am Montag. Das ist jeden Montag um 06:30.
Jedes Feld kann einen einzelnen Wert enthalten, eine Liste (1,15), einen Bereich (1-5), eine Schrittweite (*/10) oder eine Mischung (0-30/10,45). Der Builder auf dieser Seite schreibt das für dich, und die Beschreibungszeile liest das Ergebnis zurück, damit du es prüfen kannst.
Die Falle mit Tag des Monats und Wochentag
Wenn beide Tagesfelder einen anderen Wert als einen Stern haben, behandelt cron sie als Alternativen. Ein Job mit 0 0 1 * 1 läuft am Ersten des Monats und an jedem Montag. Das überrascht viele, die den ersten Montag des Monats erwartet hatten.
Cron kann den ersten Montag nicht direkt ausdrücken. Der übliche Ausweg ist, 0 0 1-7 * * zu planen und das Skript beenden zu lassen, wenn der Tag kein Montag ist, oder einen Scheduler mit eigener Syntax dafür zu verwenden.
Wo dein Zeitplan laufen wird
Alle Plattformen unten nutzen dieselben fünf Felder, verpacken sie aber unterschiedlich, und manche haben eigene Regeln. Kopiere das Snippet für deine Plattform aus dem Tool und prüfe dann in ihrer Dokumentation, wie oft Jobs in deinem Tarif laufen dürfen.
Alle 5 Minuten
Alle 15 Minuten
Jede volle Stunde
Alle 6 Stunden
Jeden Tag um Mitternacht
Werktags um 9:00
Freitags um 17:30
Sonntags um 3:00
Erster Tag jedes Monats
Erster Tag jedes Quartals um 8:00
Alle 10 Minuten während der Bürozeiten
Einmal im Jahr, 1. Januar
Was jedes Zeichen in einem Cron-Feld bedeutet
Symbol
Bedeutung
Beispiel
Liest sich als
Jeder Wert
* im Stundenfeld
Jede Stunde
Eine Liste von Werten
1,15 im Tagesfeld
Am 1. und 15.
Ein Bereich
1-5 im Wochentagsfeld
Montag bis Freitag
Eine Schrittweite durch einen Bereich
*/10 im Minutenfeld
Minuten 0, 10, 20, 30, 40, 50
JAN-DEC
Monatsnamen (Groß- oder Kleinschreibung)
Juni bis August
SUN-SAT
Tagesnamen; 0 und 7 sind beide Sonntag
sat,sun
Wochenenden
@daily
Kurzform für 0 0 * * *
@hourly, @weekly, @monthly, @yearly
Gleich wie die Form mit fünf Feldern
Minute
Stunde
Tag des Monats
Monat
Wochentag
Jan
Mär
Apr
Mai
Jun
Jul
Aug
Sep
Okt
Nov
So
Mo
Di
Mi
Do
Fr
Sa
Modus für {field}
Jede
Alle N
Bestimmte
Bereich
Schrittweite für {field}
Werte für {field}, durch Kommas getrennt
{field} von
{field} bis
Dein Zeitplan
Cron-Ausdruck
Ausdruck kopieren
Feld für Feld erstellen
Jede Änderung an einem Feld unten ersetzt den Ausdruck oben.
Nächste 10 Läufe
Zeitzone
Deine Uhrzeit wird geladen…
Kein Lauf in den nächsten fünf Jahren. Prüfe die Felder für Tag und Monat, zum Beispiel 31 in einem Monat mit 30 Tagen.
Korrigiere den Ausdruck, um Laufzeiten zu sehen.
Läufe liegen weniger als 5 Minuten auseinander. GitHub Actions plant nicht so häufig.
Für deine Plattform kopieren
Snippet kopieren
Füge die Zeile mit crontab -e hinzu. Sie läuft in der Zeitzone des Servers; ersetze den Befehl durch deinen eigenen.
Gehört in eine Workflow-Datei unter .github/workflows. GitHub liest den Zeitplan in UTC.
Vercel liest den Zeitplan in UTC und ruft den angegebenen Pfad mit einer GET-Anfrage auf.
Das Feld timeZone legt fest, in welcher Zone der Zeitplan gelesen wird. Ersetze Image und Befehl durch deinen Job.