⏱️
← Zurück zu Anleitungen

Cron-Ausdruck-Syntax: Ein vollständiger Leitfaden mit Beispielen

· Tags: cron-syntax, crontab-format, cron-fields, cron-expression-guide, linux-automation

Cron-Ausdruck-Syntax

Cron ist der Standard-Job-Scheduler auf Unix-ähnlichen Systemen. Jeder Cron-Ausdruck definiert einen Zeitplan in einer kompakten Zeichenkette, die angibt, wann ein Befehl ausgeführt werden soll. Das Verständnis der Syntax ist unerlässlich für die Automatisierung von Backups, Log-Rotation und Wartungsaufgaben.

Das 5-Felder-Format

Ein standardmäßiger Cron-Ausdruck hat fünf Felder, die durch Leerzeichen getrennt sind:

* * * * *
| | | | |
| | | | +----- Day of the Week (0-7, 0 and 7 = Sunday)
| | | +------- Month (1-12)
| | +--------- Day of the Month (1-31)
| +----------- Hour (0-23)
+------------- Minute (0-59)

Felddetails

| Feld | Bereich | Sonderzeichen | Beispiel | |-------|-------|-------------------|---------| | Minute | 0-59 | , - * / | 30 = um Minute 30 | | Stunde | 0-23 | , - * / | 6 = um 6 Uhr | | Tag des Monats | 1-31 | , - * / | 15 = am 15. | | Monat | 1-12 | , - * / | 6 = im Juni | | Tag der Woche | 0-7 | , - * / | 0 = am Sonntag |

Die Minute steuert die genaue Ausführungsminute: 30 * * * * wird in Minute 30 jeder Stunde ausgeführt. Die Stunde legt die Tageszeit fest: 0 6 * * * wird täglich um 6:00 Uhr ausgeführt. Der Tag des Monats schränkt auf bestimmte Kalenderdaten ein: 0 0 15 * * wird am 15. jedes Monats um Mitternacht ausgeführt. Der Monat begrenzt die Ausführung auf bestimmte Monate: 0 0 1 6 * wird am 1. Juni ausgeführt. Der Tag der Woche steuert, an welchen Wochentagen: 0 8 * * 1-5 wird montags bis freitags um 8 Uhr ausgeführt.

Wichtig: Die Tage 29-31 werden nur in Monaten ausgeführt, die diese Daten haben. In kürzeren Monaten werden diese Werte stillschweigend übersprungen.

Sonderzeichen

| Zeichen | Name | Zweck | Beispiel | |------|------|---------|---------| | * | Sternchen | Alle möglichen Werte | * in Minute = jede Minute | | , | Komma | Liste von Werten | 1,15,30 = Minuten 1, 15, 30 | | - | Bindestrich | Bereich | 9-17 = Stunden 9 bis 17 | | / | Schrägstrich | Schrittwerte | */5 = alle 5 Minuten |

Schrittwerte mit Schrägstrich

Der Schrägstrich drückt "alle N Einheiten" aus:

# Every 5 minutes
*/5 * * * *

# Every 2 hours
0 */2 * * *

# Every 15 minutes during business hours
*/15 9-17 * * *

Häufige Cron-Zeitplan-Muster

| Zeitplan | Ausdruck | Beschreibung | |----------|------------|-------------| | Jede Minute | * * * * * | Wird 1.440-mal pro Tag ausgeführt | | Alle 5 Minuten | */5 * * * * | Health-Checks, Monitoring | | Jede Stunde | 0 * * * * | Zu jeder vollen Stunde | | Zweimal täglich | 0 6,18 * * * | 6 Uhr und 18 Uhr | | Täglich um Mitternacht | 0 0 * * * | Klassische Wartung | | Wöchentlich sonntags | 0 0 * * 0 | Wöchentliche Wartung | | 1. des Monats | 0 0 1 * * | Monatliche Berichte | | Werktage 9 Uhr | 0 9 * * 1-5 | Beginn der Geschäftszeiten |

Nicht standardmäßige Abkürzungen

Einige Cron-Implementierungen unterstützen benannte Abkürzungen: @yearly (1. Januar), @monthly (1. des Monats), @weekly (Sonntag), @daily (Mitternacht), @hourly und @reboot (wird einmal beim Systemstart ausgeführt). Unterstützt von Vixie cron, cronie und systemd-Timern.

Häufige Fehler

  • Das gleichzeitige Festlegen von Tag des Monats und Tag der Woche erzeugt eine ODER-Bedingung — der Job wird ausgeführt, wenn eines von beiden zutrifft, was selten die Absicht ist.
  • Cron verwendet die Systemzeitzone. Jobs in der Nähe von Sommerzeitumstellungen können doppelt oder gar nicht ausgeführt werden.
  • Zähle immer fünf Felder. Vier Felder sind ungültig; sechs Felder erfordern erweiterte Cron-Syntax.

Teste deine Cron-Ausdrücke

Verwende den Cron-Expression-Validator, um die Syntax zu prüfen, kommende Ausführungszeiten vorzuzeigen und Fehler zu erkennen, bevor sie die Produktion beeinträchtigen. Eine Dreißig-Sekunden-Validierungsprüfung verhindert stille Zeitplanungsfehler.

Cron-Ausdruck-Syntax: Ein vollständiger Leitfaden mit Beispielen - CoolTool