cron linux devops cheat-sheet scheduling automation

Cron-Syntax Cheat Sheet: Vollständige Referenz und Zeitplan-Visualisierer

Ein umfassender Leitfaden zur Cron-Ausdruckssyntax, einschließlich Sonderzeichen, gängiger Beispiele und Erklärungen zum Visualisierer. Meistern Sie die crontab-Planung für Linux und Unix.

Cron-Syntax Cheat Sheet: Vollständige Referenz

Cron ist ein zeitbasierter Job-Scheduler in Unix-ähnlichen Betriebssystemen. Egal, ob Sie als Entwickler eine Hintergrundaufgabe einrichten oder als DevOps-Ingenieur die Serverwartung verwalten – das Verständnis der Cron-Ausdruckssyntax ist unerlässlich.

Dieser Leitfaden bietet eine vollständige Aufschlüsselung der Cron-Felder, Sonderzeichen und praktischen Beispiele, damit Sie Aufgaben sicher planen können.


1. Format von Cron-Ausdrücken

Ein Standard-Cron-Ausdruck besteht aus fünf Feldern (oder sechs in einigen Systemen wie Quartz oder Jenkins).

┌───────────── Minute (0 - 59)
│ ┌───────────── Stunde (0 - 23)
│ │ ┌───────────── Tag des Monats (1 - 31)
│ │ │ ┌───────────── Monat (1 - 12)
│ │ │ │ ┌───────────── Wochentag (0 - 6) (Sonntag bis Samstag)
│ │ │ │ │
* * * * *

2. Referenz für Sonderzeichen

Zeichen Beschreibung Beispiel
* Jeder Wert: Entspricht jedem möglichen Wert für dieses Feld. * * * * * (Jede Minute)
, Listen-Trennzeichen: Gibt eine Liste von Werten an. 0,15,30,45 (Alle 15 Minuten)
- Wertebereich: Gibt einen Bereich von X bis Y an. 9-17 (Von 9 bis 17 Uhr)
/ Schrittwerte: Gibt Intervalle an. */15 (Alle 15 Minuten)
L Letzter (Last): Gibt den letzten Tag des Monats oder der Woche an. 5L (Letzter Freitag des Monats)
W Werktag (Weekday): Der nächste Werktag (Mo-Fr) zu einem Datum. 15W (Nächster Werktag zum 15.)
# N-ter Wochentag: Gibt das n-te Vorkommen eines Wochentags an. 6#3 (Dritter Samstag im Monat)

3. Gängige Cron-Beispiele

Zeitplan Ausdruck Beschreibung
Jede Minute * * * * * Führt die Aufgabe jede Minute aus.
Jede Stunde 0 * * * * Wird zu Beginn jeder Stunde ausgeführt.
Täglich um Mitternacht 0 0 * * * Wird einmal täglich um 00:00 Uhr ausgeführt.
Sonntags um 4 Uhr morgens 0 4 * * 0 Ideal für wöchentliche Backups.
Alle 15 Minuten */15 * * * * Ausführung um :00, :15, :30 und :45.
Geschäftszeiten (9-17 Uhr) 0 9-17 * * 1-5 Stündliche Ausführung an Werktagen.

4. crontab -e vs crontab -l

Der Befehl crontab wird verwendet, um Ihre persönlichen Cron-Jobs zu verwalten.

  • crontab -e: Öffnet Ihre persönliche crontab-Datei zum Bearbeiten. Wenn Sie dies zum ersten Mal tun, werden Sie möglicherweise aufgefordert, einen Editor (wie nano oder vim) zu wählen.
  • crontab -l: Listet alle aktiven Cron-Jobs für den aktuellen Benutzer auf.
  • crontab -r: Entfernt alle Ihre aktuellen Cron-Jobs. Mit Vorsicht genießen!

5. Visualisierung Ihres Zeitplans

Das Lesen eines rohen Cron-Ausdrucks kann schwierig sein. Deshalb haben wir den Cron-Zeitplan-Visualisierer entwickelt.

Unser Tool hilft Ihnen:

  1. Ausdrücke parsen: Sofortige Übersetzung von 0 4 * * 0 in „Um 04:00 Uhr an Sonntagen“.
  2. Nächste Laufzeiten: Sehen Sie die nächsten 5 geplanten Ausführungen basierend auf Ihrer Zeitzone.
  3. Menschlich lesbare Beschreibungen: Kein Raten mehr, was */5 9-17 * * 1-5 bedeutet.

FAQ: Fehlerbehebung bei Cron-Jobs

F: Warum wird mein Cron-Job nicht ausgeführt?

A: Der häufigste Grund sind Umgebungsvariablen. Cron wird mit einer minimalen Shell-Umgebung ausgeführt. Verwenden Sie immer absolute Pfade für Befehle (z. B. /usr/bin/python3 statt python3) und protokollieren Sie Ihre Ausgabe in einer Datei: * * * * * /pfad/zum/script.sh >> /var/log/cron.log 2>&1.

F: Was ist die systemd-timer Alternative?

A: Moderne Linux-Distributionen (wie Ubuntu, Fedora) empfehlen systemd timers anstelle von cron. Sie bieten eine bessere Protokollierung über journalctl, Abhängigkeiten und eine flexiblere Planung, obwohl die Konfiguration komplexer ist.

F: Wie gehe ich mit Zeitzonenproblemen in cron um?

A: Standardmäßig läuft cron in der lokalen Zeitzone des Systems (auf Servern meist UTC). Einige Systeme erlauben es Ihnen, CRON_TZ=Europe/Berlin am Anfang der crontab-Datei festzulegen, aber der zuverlässigste Weg ist die Synchronisierung Ihrer Serveruhr mit der gewünschten Zeitzone.


Verwandte Tools auf Tool3M