Linux-cron (cronie, Vixie-cron, Kubernetes, GitHub Actions)
┌─ Minute 0–59
│ ┌─ Stunde 0–23
│ │ ┌─ Tag 1–31
│ │ │ ┌─ Monat 1–12 oder jan–dec
│ │ │ │ ┌─ Wochentag 0–7 (0 und 7 = Sonntag) oder sun–sat
│ │ │ │ │
* * * * * befehl
Zeichen in Linux-cron
* | jeder Wert |
5,10 | Liste |
8-17 | Bereich (aufsteigend) |
*/15 | alle 15 ab dem kleinsten Wert |
8-17/2 | alle 2 im Bereich (8, 10 … 16) |
@daily | @yearly @monthly @weekly @daily @hourly @reboot |
\% | % im Befehl maskieren – sonst Zeilenumbruch |
Tag und Wochentag gesetzt (keins beginnt mit *): ODER-Verknüpfung. CRON_TZ= nur bei cronie.
Quartz / Spring · AWS EventBridge
Quartz/Spring: Sek Min Std Tag Monat Wochentag [Jahr]
AWS cron(): Min Std Tag Monat Wochentag Jahr
Wochentag: 1–7 = Sonntag–Samstag oder SUN–SAT
Zeichen in Quartz und AWS
? | „egal“ – in Tag oder Wochentag (Pflicht in Quartz und AWS) |
L | letzter Tag des Monats; L-3 drei Tage davor |
LW | letzter Werktag (Mo–Fr) |
15W | Werktag am nächsten zum 15. |
6L | letzter Freitag im Monat |
2#1 | erster Montag im Monat |
0/15 | alle 15 ab 0 |
rate(5 minutes) | AWS: fester Abstand ab Anlegen |
systemd OnCalendar
Wochentag Jahr-Monat-Tag Stunde:Minute:Sekunde Zeitzone
Mon..Fri *-*-* 08:30:00 Europe/Vienna
Zeichen in systemd
Mon,Fri | Wochentage (englisch), Bereich mit .. |
*-*-01..07 | Tage 1 bis 7 |
*:00/15 | alle 15 Minuten (Startwert nötig) |
*-*~01 | letzter Tag des Monats (~ zählt vom Ende) |
daily | minutely hourly daily weekly monthly quarterly yearly |
Prüfen auf dem Server: systemd-analyze calendar --iterations=5 'Mon..Fri 08:30'
Zeitumstellung (Sommer-/Winterzeit)
Verhalten bei der Zeitumstellung| System | Stunde fällt aus (März) | Stunde doppelt (Oktober) |
| cronie / Vixie-cron | feste Zeiten werden direkt nach der Umstellung nachgeholt | feste Zeiten einmal; Ausdrücke mit * in Minute/Stunde zweimal |
| systemd | entfällt | einmal |
| AWS Scheduler | entfällt | einmal |
| Quartz / Spring | um die Lücke verschoben (02:30 → 03:30) | einmal (je nach Version auch zweimal) |
Wer das vermeiden will: Server in UTC laufen lassen oder Jobs nicht zwischen 02:00 und 03:00 einplanen.