alltools.one
DevOps‱
2026-02-25
‱
11 min
‱
alltools.one Team
cronschedulingdevopsautomationlinux

Cron-Ausdruck Spickzettel — Jobs planen wie ein Profi

Cron ist das RĂŒckgrat der automatisierten Aufgabenplanung auf Unix-Ă€hnlichen Systemen. Ob Sie Logs rotieren, Datenbank-Backups ausfĂŒhren oder CI/CD-Pipelines auslösen — Cron-AusdrĂŒcke definieren wann diese Jobs ausgefĂŒhrt werden. Die Syntax ist kompakt aber mĂ€chtig — und leicht falsch zu machen, wenn man rĂ€t.

Diese Referenz deckt jeden Teil der Cron-Syntax mit praktischen, kopierfertigen Beispielen ab. Wenn Sie AusdrĂŒcke interaktiv erstellen und validieren möchten, öffnen Sie den Cron-Ausdruck-Builder neben dieser Anleitung.

Cron-Syntax: Die fĂŒnf Felder

Ein Standard-Cron-Ausdruck besteht aus fĂŒnf durch Leerzeichen getrennten Feldern:

┌───────────── Minute (0–59)
│ ┌───────────── Stunde (0–23)
│ │ ┌───────────── Tag des Monats (1–31)
│ │ │ ┌───────────── Monat (1–12)
│ │ │ │ ┌───────────── Wochentag (0–7, wobei 0 und 7 = Sonntag)
│ │ │ │ │
* * * * *

Jedes Feld akzeptiert einen bestimmten Wert, einen Bereich, eine Liste oder einen Platzhalter. Zusammen legen die fĂŒnf Felder einen exakten wiederkehrenden Zeitplan fest.

FeldErlaubte WerteSonderzeichen
Minute0–59* , - /
Stunde0–23* , - /
Tag des Monats1–31* , - /
Monat1–12* , - /
Wochentag0–7* , - /

Monats- und Wochentagfelder akzeptieren auch dreibuchstabige AbkĂŒrzungen (JAN–DEC, SUN–SAT) in den meisten Implementierungen.

Sonderzeichen erklÀrt

Das VerstĂ€ndnis von vier Sonderzeichen erschließt die volle Kraft von Cron:

Sternchen * — „Jeder"

Stimmt mit jedem möglichen Wert fĂŒr dieses Feld ĂŒberein.

* * * * *    # Jede Minute jeder Stunde jeden Tages

Komma , — „Und"

Gibt eine Liste diskreter Werte an.

0 9,12,18 * * *    # Um 9:00, 12:00 und 18:00 Uhr tÀglich

Bindestrich - — „Bis"

Definiert einen inklusiven Bereich.

0 9-17 * * *    # Jede Stunde von 9 bis 17 Uhr

SchrĂ€gstrich / — „Jedes n-te"

Legt ein Schrittintervall vom Beginn des Bereichs fest.

*/10 * * * *    # Alle 10 Minuten (0, 10, 20, 30, 40, 50)

Sie können einen Bereich mit einem Schritt kombinieren:

0 9-17/2 * * *    # Alle 2 Stunden von 9 bis 17 Uhr (9, 11, 13, 15, 17)

GĂ€ngige Cron-Zeitplan-Beispiele

Merken Sie sich diese Tabelle. Das sind die ZeitplÀne, die Sie immer wieder verwenden werden.

ZeitplanAusdruckErklÀrung
Jede Minute* * * * *LĂ€uft zu Beginn jeder Minute
Alle 5 Minuten*/5 * * * *Minuten 0, 5, 10, 15, 
, 55
Alle 15 Minuten*/15 * * * *Minuten 0, 15, 30, 45
Jede Stunde0 * * * *In Minute 0 jeder Stunde
Alle 6 Stunden0 */6 * * *Um 00:00, 06:00, 12:00, 18:00
TÀglich um Mitternacht0 0 * * *Einmal tÀglich um 00:00
TÀglich um 3 Uhr0 3 * * *Einmal tÀglich um 03:00
Jeden Montag um 9 Uhr0 9 * * 1Wöchentlich am Montag um 09:00
Jeden Werktag um 8 Uhr0 8 * * 1-5Montag bis Freitag um 08:00
Jedes Wochenende um 12 Uhr0 12 * * 0,6Samstag und Sonntag um 12:00
Erster jedes Monats0 0 1 * *Mitternacht am 1. jedes Monats
Jedes Quartal (Jan, Apr, Jul, Okt)0 0 1 1,4,7,10 *Mitternacht am 1. der Quartalsmonate
Alle 15 Min wĂ€hrend GeschĂ€ftszeiten*/15 9-17 * * 1-5Werktags, 9–17 Uhr, alle 15 Minuten

FĂŒgen Sie jeden Ausdruck in den Cron-Ausdruck-Builder ein, um die nĂ€chsten AusfĂŒhrungszeiten zu visualisieren.

Fortgeschrittene Muster

Listen und Bereiche kombinieren

Felder akzeptieren gemischte Syntax. Um einen Job um 8 Uhr und 18 Uhr an Werktagen auszufĂŒhren:

0 8,18 * * 1-5

Um bestimmte Monate mit einem Schritt anzuvisieren:

0 0 1 1-12/3 *    # Alle 3 Monate ab Januar (Jan, Apr, Jul, Okt)

Tag des Monats vs. Wochentag

Wenn sowohl Tag des Monats als auch Wochentag gesetzt sind (nicht *), hĂ€ngt das Verhalten von der Implementierung ab. Im Standard-Cron wird der Job ausgefĂŒhrt, wenn eine der Bedingungen erfĂŒllt ist — es ist eine ODER-Beziehung, kein UND. Das ĂŒberrascht viele.

0 0 15 * 1    # LĂ€uft am 15. UND jeden Montag — nicht "Montag der 15."

AusfĂŒhrung beim Systemstart

Obwohl kein Cron-Ausdruck im eigentlichen Sinne, ist @reboot eine weit unterstĂŒtzte Kurzform:

@reboot /usr/local/bin/start-service.sh

Andere gÀngige Kurzformen:

KurzformEntsprechung
@yearly0 0 1 1 *
@monthly0 0 1 * *
@weekly0 0 * * 0
@daily0 0 * * *
@hourly0 * * * *

Cron in verschiedenen Umgebungen

Die FĂŒnf-Felder-Syntax ist universell, aber wie Sie Cron konfigurieren, variiert je nach Plattform.

Linux Crontab

Der Klassiker. Bearbeiten Sie Ihr Benutzer-Crontab mit crontab -e:

# Backup jeden Tag um 2 Uhr ausfĂŒhren
0 2 * * * /home/user/scripts/backup.sh >> /var/log/backup.log 2>&1

Systemweite Cron-Jobs in /etc/cron.d/ enthalten ein zusÀtzliches Benutzerfeld:

0 2 * * * root /usr/local/bin/cleanup.sh

GitHub Actions

GitHub Actions verwendet die gleiche FĂŒnf-Felder-Syntax innerhalb eines schedule-Triggers. Alle Zeiten sind UTC.

on:
  schedule:
    - cron: '0 3 * * 1-5'   # Werktags um 3 Uhr UTC

FĂŒr eine vertiefte YAML-Konfiguration siehe YAML fĂŒr Kubernetes und YAML fĂŒr Docker Compose.

Kubernetes CronJob

Kubernetes kapselt Cron-AusdrĂŒcke in einer CronJob-Ressource:

apiVersion: batch/v1
kind: CronJob
metadata:
  name: nightly-report
spec:
  schedule: "0 2 * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
            - name: report
              image: reporting:latest
              command: ["python", "generate_report.py"]
          restartPolicy: OnFailure

Kubernetes verwendet standardmĂ€ĂŸig UTC. Ab v1.25 können Sie timeZone: "America/New_York" in der CronJob-Spezifikation setzen.

AWS CloudWatch (EventBridge)

AWS verwendet eine leicht abweichende Syntax mit sechs Feldern (Sekunden hinzugefĂŒgt) und den rate() / cron()-Wrappern:

cron(0 3 * * ? *)    # TĂ€glich um 3 Uhr UTC

Beachten Sie das ?-Zeichen — AWS erfordert es fĂŒr entweder Tag des Monats oder Wochentag, wenn der andere angegeben ist. Dies unterscheidet sich vom Standard-Cron.

HĂ€ufige Fallstricke

1. Zeitzonen-Verwirrung

Cron verwendet auf Linux die Systemzeitzone, aber Kubernetes und GitHub Actions laufen in UTC. Ein Job mit 0 9 * * * wird um 9 Uhr UTC ausgelöst, was 10 Uhr MEZ entspricht.

ÜberprĂŒfen Sie immer, welche Zeitzone Ihr Scheduler verwendet. FĂŒr Zeitstempel-Konvertierungen behandelt unsere Anleitung Unix-Zeitstempel erklĂ€rt UTC-Offsets im Detail.

2. Überlappende AusfĂŒhrungen

Wenn ein Job lĂ€nger dauert als das Intervall zwischen den AusfĂŒhrungen, erhalten Sie ĂŒberlappende Instanzen. Ein Skript, das 8 Minuten mit einem */5 * * * *-Zeitplan lĂ€uft, wird sich aufstauen.

Lösungen:

  • Verwenden Sie eine Sperrdatei (flock unter Linux)
  • Setzen Sie concurrencyPolicy: Forbid in Kubernetes CronJobs
  • PrĂŒfen Sie auf laufende Instanzen zu Beginn Ihres Skripts

3. Fehlende Ausgabe und Debugging

Cron erfasst stdout nicht standardmĂ€ĂŸig. Leiten Sie die Ausgabe immer um:

*/5 * * * * /path/to/script.sh >> /var/log/myjob.log 2>&1

Wenn ein Cron-Job nicht lĂ€uft, prĂŒfen Sie:

  • grep CRON /var/log/syslog fĂŒr AusfĂŒhrungslogs
  • Dateiberechtigungen des Skripts
  • Die PATH-Umgebungsvariable — Cron hat standardmĂ€ĂŸig einen minimalen PATH

4. Die „31. jedes Monats"-Falle

0 0 31 * *    # LĂ€uft nur in Monaten mit 31 Tagen

Dies lĂ€uft im Januar, MĂ€rz, Mai, Juli, August, Oktober und Dezember — ĂŒberspringt aber stillschweigend die anderen fĂŒnf Monate. Wenn Sie einen Monatsende-Job benötigen, erwĂ€gen Sie, am 1. auszufĂŒhren und Ihre Skript-Logik anzupassen, oder verwenden Sie ein Tool, das „letzter Tag des Monats"-Semantik unterstĂŒtzt.

5. Fehlende Neue Zeile am Ende des Crontab

Einige Cron-Implementierungen erfordern einen abschließenden Zeilenumbruch in der Crontab-Datei. Wenn Ihr letzter Eintrag nicht ausgefĂŒhrt wird, fĂŒgen Sie eine leere Zeile am Ende hinzu.

AusdrĂŒcke visuell erstellen

Das Auswendiglernen der Syntax funktioniert fĂŒr gĂ€ngige Muster, aber komplexe ZeitplĂ€ne lassen sich visuell einfacher erstellen. Der Cron-Ausdruck-Builder auf alltools.one ermöglicht:

  • Werte fĂŒr jedes Feld ĂŒber Dropdowns auswĂ€hlen
  • Eine menschenlesbare Beschreibung des Zeitplans sehen
  • Bevorstehende AusfĂŒhrungszeiten vorschauen
  • Den fertigen Ausdruck mit einem Klick kopieren

Er lĂ€uft vollstĂ€ndig in Ihrem Browser — keine Daten werden an einen Server gesendet.

Schnellreferenzkarte

Kopieren Sie diesen Block in Ihre Projektdokumentation oder Team-Wiki:

# ┌───── Min (0-59)
# │ ┌───── Stunde (0-23)
# │ │ ┌───── Tag des Monats (1-31)
# │ │ │ ┌───── Monat (1-12)
# │ │ │ │ ┌───── Wochentag (0-7, So=0 oder 7)
# │ │ │ │ │
# * * * * *

*/5 * * * *        # Alle 5 Minuten
0 * * * *          # Jede Stunde
0 0 * * *          # TĂ€glich um Mitternacht
0 9 * * 1-5        # Werktags um 9 Uhr
0 0 1 * *          # Erster des Monats
*/15 9-17 * * 1-5  # Alle 15 Min, GeschÀftszeiten

WeiterfĂŒhrende LektĂŒre


Bereit, Ihren nĂ€chsten Cron-Ausdruck zu erstellen? Öffnen Sie den Cron-Ausdruck-Builder und legen Sie Ihren Zeitplan beim ersten Mal richtig fest.

Published on 2026-02-25
Cron Expression Cheat Sheet — Schedule Like a Pro | alltools.one