Cron-Ausdruck-Format
I. Grundstruktur von Cron-Ausdrücken (mit autoritativen Quellen)
Ein standardmäßiger Cron-Ausdruck besteht aus 5 Zeitfeldern und 1 Befehlsfeld, entsprechend den Unix- und Linux-Systemkonventionen. Gemäß dem IEEE Std 1003.1-2017 (POSIX-Standard) und der Linux-man 5 crontab-Dokumentation, lautet das Format:
* * * * * auszuführender-befehl
│ │ │ │ │
│ │ │ │ └── Wochentag (0-7, sowohl 0 als auch 7 stehen für Sonntag)
│ │ │ └──── Monat (1-12)
│ │ └────── Tag des Monats (1-31)
│ └──────── Stunde (0-23)
└────────── Minute (0-59)
Autoritative Hinweise:
- Der POSIX-Standard definiert die Mindestkompatibilitätsspezifikation und erfordert Unterstützung für
*, , und - Symbole.
- Linux-System-
cron-Implementierungen (wie Cronie) erweitern die Funktionalität um Schrittwerte (/) und spezielle Zeichenketten (@daily usw.), wie in deren offizieller Dokumentation detailliert.
II. Symbolregeln für Zeitfelder
Jedes Zeitfeld unterstützt folgende Sonderzeichen:
| Symbol |
Beschreibung |
Beispiel |
* |
Entspricht einem beliebigen Wert |
* in Minuten = jede Minute |
, |
Gibt mehrere Werte an |
1,3,5 = Minuten 1, 3 und 5 |
- |
Definiert einen Bereich |
10-15 = Minuten 10 bis 15 |
/ |
Schrittwerte (Intervall) |
*/5 in Minuten = alle 5 Minuten |
? |
"Kein bestimmter Wert" (nur für DOM/DOW) |
Zur Vermeidung von Konflikten verwendet |
Moderne Cron-Implementierungen (wie Vixie cron und dessen Abkömmlinge) unterstützen reichere Syntaxregeln. Gemäß der IBM Cron-Referenzdokumentation und dem Cronie-Projekt-Wiki werden folgende Symbole weithin unterstützt:
| Symbol |
Beschreibung |
Beispiel aus der offiziellen Dokumentation |
L |
Letzter Tag (von einigen Implementierungen unterstützt) |
0 0 L * * = Ausführung am letzten Tag eines jeden Monats |
W |
Nächster Wochentag (z. B. 15W = nächster Wochentag zum 15.) |
Siehe Quartz Scheduler-Dokumentation (verbreitet im Java-Ökosystem) |
III. Ursprung der vordefinierten Aliase (@daily usw.)
@daily, @weekly und ähnliche Aliase stammen aus Paul Vixies Cron-Implementierung (Vixie cron, veröffentlicht 1987), und sind nun Standardfunktionen in modernen Linux-Distributionen (wie Debian, Red Hat). Gemäß dem Debian-cron-Handbuch:
# Entspricht 0 0 * * *
@daily /pfad/zum/script
IV. Häufige Implementierungsunterschiede und Hinweise
Verschiedene Cron-Implementierungen weisen subtile Variationen auf, die jeweils in deren Dokumentation nachgeschlagen werden sollten:
| Implementierung |
Funktionen |
Offizieller Ressourcenlink |
| Cronie |
Red Hats Standard-cron, unterstützt @-Kürzel |
Cronie GitHub |
| systemd |
Ersetzt cron durch .timer-Einheiten (für neue Systeme empfohlen) |
systemd.timer-Handbuch |
| fcron |
Unterstützt komplexere Syntax (z. B. @yearly) |
fcron-Website |
V. Empfohlene Validierungswerkzeuge und autoritative Referenzen
-
Crontab-Handbuchseite
Führen Sie man 5 crontab im Terminal für die vollständige Syntax aus - die direkteste lokale autoritative Referenz.
-
Cron-Ausdruck-Generatoren
-
Open-Source-Projektdokumentation
VI. Zusammenfassung
Durch die Kombination von POSIX-Standards, Linux-Handbuchseiten und Dokumentationen der wichtigsten Implementierungen (wie Cronie) können Benutzer die Kernlogik von Cron-Ausdrücken präzise verstehen. Für die erweiterte Verwendung (wie L und W) sind Implementierungskompatibilität und offizielle Ressourcen zu beachten.
Referenzen