0 0 1 * *Felder
| Minute | 0 | 0 |
|---|---|---|
| Stunde | 0 | 0 |
| Tag des Monats | 1 | 1 |
| Monat | * | beliebig |
| Wochentag | * | beliebig |
Wo du ihn verwendest
| crontab | 0 0 1 * * /path/to/script.sh |
|---|---|
| GitHub Actions | - cron: "0 0 1 * *" (on.schedule) |
| Kubernetes CronJob | schedule: "0 0 1 * *" |
crontab läuft in der Zeitzone des Servers; GitHub Actions verwendet immer UTC.
Gut zu wissen
0 0 1 * * läuft um Mitternacht am 1. jedes Monats, genau wie @monthly. Abrechnungen, Rechnungen und Monatsberichte landen meist hier, also leg fest, welche Zeitzone „den 1.“ definiert: Auf einem UTC-Server ist in Amerika noch der letzte Tag des Vormonats. Ein Bericht über den letzten Monat sollte seinen Zeitraum aus dem Ausführungsdatum berechnen und nie 30 oder 31 Tage annehmen.
Vixie cron und cronie haben keine Syntax für den letzten Tag des Monats; lass den Job um 0 0 28-31 * * laufen und prüfe im Befehl, zum Beispiel test $(date -d tomorrow +\%d) = 01 && /path/to/script.sh. Quartz und manche Cloud-Scheduler unterstützen stattdessen L. Vorsicht bei der ODER-Regel: 0 0 1 * 1 läuft am 1. und an jedem Montag, nicht an Montagen, die auf den 1. fallen.