cronjob guru
Der einfachste Weg, Cron-Expressions zu erstellen und zu verstehen.
Was ist eine Cron-Expression?
Cron-Expressions bestehen aus 5 Feldern, getrennt durch Leerzeichen, die verwendet werden, um einen maschinenlesbaren Zeitplan für die Ausführung von (wiederkehrenden) Aufgaben (so gennante "Cron-Jobs") festzulegen. Sie werden häufig in Umgebungen wie Unix/Linux, AWS, Kubernetes oder anderen Tools verwendet, die es ermöglichen, wiederkehrende Aufgaben nach eigenen Vorgaben zu planen und auszuführen.
| Feld | Mögliche Werte | Beschreibung |
|---|---|---|
| Minute | 0-59 | Minute der Stunde |
| Stunde | 0-23 | Stunde des Tages (24-Stunden-Format) |
| Tag des Monats | 1-31 | Tag des Monats |
| Monat | 1-12 | Monat des Jahres |
| Wochentag | 0-6 | Wochentag (0 ist Sonntag, 1 ist Montag, usw.) |
Gängige Anwendungsfälle, die in der Regel Cron-Expressions benötigen sind:
- Erstellen eines nächtlichen Datenbank-Backups, jede Nacht um 2:30 Uhr
- Ausführen eines Skripts zur Überprüfung der Erreichbarkeit eines Servers, alle 15 Minuten
- Senden einer zusammenfassenden Benachrichtigung an einen Benutzer, jeden Tag um 9:00 Uhr
Spezielle Werte
| Wert | Beschreibung |
|---|---|
| * | Bedeutet "alle möglichen Werte" Beispiel: Jede Minute, jede Stunde |
| , | Wird verwendet, um mehrere Werte zu trennen Beispiel: "1,3,5" bedeutet genau bei 1, 3 und 5 |
| - | Wird verwendet, um Bereiche zu definieren Beispiel: "1-5" bedeutet 1, 2, 3, 4, 5 |
| / | Jede n-te Einheit Dies wird häufig verwendet, um z.B. alle 15 Minuten anzugeben, was geschrieben wird als */15 |
| L | "Letzter Tag des Monats" Dieser Wert kann nur im Tag-des-Monats-Feld (3. Feld) verwendet werden. Warnung: Dieser Sonderausdruck ist möglicherweise nicht mit allen Cron-Diensten kompatibel. |
| -, | Kombinierte Verwendung von Bereich und Trenner Sie können den Bereichsoperator und den Trenner zusammen verwenden. Der Ausdruck 1-5,9,11-12 bedeutet 1,2,3,4,5,9,11,12 |
Häufige Beispiele
| Cron-Ausdruck | Bedeutung | |
|---|---|---|
| * * * * * | Minütlich (jede Minute) | |
| 0 * * * * | Jede Stunde bei Minute 0 (z.B. 14:00, 15:00, 16:00, usw.) | |
| 0 0 * * * | Jeden Tag um Mitternacht (00:00 Uhr) | |
| 0 0 * * 0 | Jeden Sonntag um Mitternacht | |
| */15 * * * * | Alle 15 Minuten | |
| 0 0 1 * * | Um Mitternacht am ersten Tag jedes Monats | |
| 0 12 * * 1-5 | Unter der Woche um 12:00 Uhr (Montag bis Freitag) |
Spezielle Cron-Expressions
Einige Cron-Services unterstützen spezielle Expressions, die es einfacher machen, häufig verwendete Zeitpläne anzugeben.
| Expression | Entspricht | Beschreibung |
|---|---|---|
| @yearly | 0 0 1 1 * | Einmal im Jahr um Mitternacht am 1. Januar |
| @monthly | 0 0 1 * * | Einmal im Monat um Mitternacht am ersten Tag |
| @weekly | 0 0 * * 0 | Einmal pro Woche um Mitternacht am Sonntag |
| @daily | 0 0 * * * | Einmal täglich um Mitternacht |
| @hourly | 0 * * * * | Einmal pro Stunde zu Beginn der Stunde |
| @reboot | N/A | Einmal beim Start ausführen (funktioniert z.B. mit crontab) |
Kompatibilitätswarnung
Diese speziellen Cron-Expressions sind möglicherweise nicht mit allen Cron-Implementierungen oder Cron-Services kompatibel. Für maximale Kompatibilität wird empfohlen, die Standard-Expressions anstelle der oben gezeigen Spezial-Expressions zu verwenden.

