Der Crontab-Generator baut Cron-Ausdrücke aus den fünf Feldern Minute, Stunde, Tag, Monat und Wochentag oder aus einer Vorlage. Eingetippte Ausdrücke werden geprüft, Fehler mit Fundstelle markiert und in einem Satz erklärt. Die nächsten Ausführungszeiten und ein Wochenraster zeigen, ob der Job wirklich dann läuft, wann du es willst. Alles wird im Browser berechnet, nichts wird gesendet.
Der Ausdruck lautet 0 9 * * 1-5: Minute 0, Stunde 9, jeder Tag und Monat, Wochentage Montag bis Freitag. Du kannst ihn im Tool eintippen oder die Vorlage „Werktags 9 Uhr“ nehmen. Der Klartext-Satz und die Liste der nächsten Läufe bestätigen das Ergebnis.
Von links nach rechts: Minute (0–59), Stunde (0–23), Tag des Monats (1–31), Monat (1–12 oder jan bis dec) und Wochentag (0–7 oder sun bis sat, 0 und 7 sind Sonntag). Ein * steht für jeden Wert, Komma für Listen, Bindestrich für Bereiche, Schrägstrich für Schritte.
*/15 heißt „alle 15 Einheiten“ innerhalb des Feldes, in der Minute also 0, 15, 30 und 45. Ein Schritt zählt ab dem Feldanfang und läuft nicht über die Feldgrenze hinweg weiter. */7 in der Minute ergibt deshalb 0, 7, … 56 und danach wieder 0.
Sind Tag des Monats und Wochentag beide eingeschränkt, läuft der Job, wenn einer von beiden passt (ODER). 30 4 1,15 * 5 läuft also am 1. und 15. und zusätzlich jeden Freitag. Soll beides gleichzeitig gelten, muss das im Befehl geprüft werden. Das Tool weist auf diesen Fall hin.
Cron läuft in der Zeitzone des Systems; crontab(5) kennt keine Zeitzone je Benutzer. Die Zonenauswahl im Tool ändert nur die Anzeige der Zeiten. Wer Eindeutigkeit will, nutzt eine Zone ohne Sommerzeit wie UTC.
Nein. Die feinste Taktung ist eine Minute, und für den letzten Tag des Monats gibt es keine Syntax. Sekundenfelder sowie Zeichen wie ?, L, W oder # stammen aus Quartz/Spring bzw. Jenkins. Das Tool meldet sie als nicht gültig für klassisches cron.
@daily (auch @midnight) entspricht 0 0 * * *, @hourly 0 * * * *, @weekly 0 0 * * 0, @monthly 0 0 1 * * und @yearly (auch @annually) 0 0 1 1 *. @reboot läuft einmal beim Start des cron-Dienstes. Diese Kürzel sind eine Erweiterung von Vixie-cron und nicht überall vorhanden.
Mit crontab -e bearbeitest du deine eigene Tabelle, crontab -l zeigt sie an. In /etc/crontab und Dateien unter /etc/cron.d/ steht zusätzlich ein Benutzerfeld vor dem Befehl. Jede Zeile muss mit einem Zeilenumbruch enden.
Nein, alles wird im Browser berechnet. Der Link-Knopf schreibt Ausdruck und Einstellungen in die Adresse, Befehl und Benutzer nur, wenn sie ausgefüllt sind.
Cron ist der klassische Zeitplaner unter Unix und Linux. Er liest Tabellen, sogenannte Crontabs, in denen jede Zeile einen Zeitausdruck und einen Befehl enthält. Der Zeitausdruck besteht aus fünf Feldern: Minute, Stunde, Tag des Monats, Monat und Wochentag. Die Regeln dieses Tools folgen der Dokumentation crontab(5) und cron(8) von Debian (Vixie-cron).
In jedem Feld sind Zahlen, Listen mit Komma (1,15), Bereiche mit Bindestrich (9-17, beide Grenzen eingeschlossen) und Schritte mit Schrägstrich (*/15 oder 10-40/10) erlaubt. Monate und Wochentage dürfen als Namen aus den ersten drei Buchstaben geschrieben werden. Der Sonntag ist 0 oder 7; portabel ist 0. Ein Schritt zählt ab dem Feldanfang, er setzt sich also nicht über die Feldgrenze fort.
Eine häufige Falle betrifft Tag und Wochentag. Sind beide eingeschränkt, genügt es, wenn einer passt. Beginnt dagegen eines der beiden Felder mit *, müssen beide zusammen passen. So läuft 0 0 */2 * sun nur an Sonntagen mit ungeradem Datum. Ebenfalls leicht zu übersehen: Steht in der Minute ein * und die Stunde ist fest, läuft der Job in jeder Minute dieser Stunde.
Cron läuft in der Zeitzone des Systems. Bei der Umstellung auf Sommerzeit laufen feste Uhrzeiten aus der übersprungenen Stunde kurz danach, bei der Rückstellung nur einmal. Jobs mit * in Minute oder Stunde laufen einfach nach der neuen Uhr weiter. Wer sich diese Sonderfälle ersparen will, wählt eine Zone ohne Sommerzeit wie UTC.
Im Befehl gelten eigene Regeln: Ein % wird zum Zeilenumbruch, wenn es nicht mit \ geschützt ist. Cron setzt nur SHELL, LOGNAME und HOME, daher sind volle Pfade sinnvoll. MAILTO bestimmt, wohin die Ausgabe geht.
Andere Systeme verwenden abweichende Dialekte: Quartz und Spring haben ein Sekundenfeld vorn sowie ?, L, W und #, Jenkins kennt H, Cloud-Dienste haben eigene Besonderheiten. Dieses Tool prüft ausschließlich das klassische Fünf-Felder-cron. Eine Alternative unter Linux sind systemd-Timer mit OnCalendar=, die sich mit systemd-analyze calendar prüfen lassen.
Die Werkzeuge auf dieser Website werden als kostenloses Hobbyangebot bereitgestellt und dienen ausschließlich zur Information und privaten Nutzung. Für die Richtigkeit, Vollständigkeit oder Eignung der Ergebnisse für einen bestimmten Zweck wird keine Gewähr übernommen. Vor Verwendung der Ergebnisse — insbesondere bei finanziellen, rechtlichen oder sicherheitsrelevanten Entscheidungen — sind diese eigenverantwortlich zu prüfen. Eine Haftung für Schäden aus der Nutzung ist ausgeschlossen, soweit dies gesetzlich zulässig ist.