0 0 1 1 *Pola
| Minuta | 0 | 0 |
|---|---|---|
| Godzina | 0 | 0 |
| Dzień miesiąca | 1 | 1 |
| Miesiąc | 1 | 1 |
| Dzień tygodnia | * | dowolna |
Gdzie go użyć
| crontab | 0 0 1 1 * /path/to/script.sh |
|---|---|
| GitHub Actions | - cron: "0 0 1 1 *" (on.schedule) |
| Kubernetes CronJob | schedule: "0 0 1 1 *" |
crontab działa w strefie czasowej serwera; GitHub Actions zawsze używa UTC.
Warto wiedzieć
0 0 1 1 * uruchamia się raz w roku, o północy 1 stycznia, tak samo jak @yearly i @annually. Tak rzadkie zadania trudno przetestować i łatwo o nich zapomnieć: do następnego stycznia skrypt, jego dane uwierzytelniające albo sam serwer mogą się zmienić. Po dodaniu uruchom je raz ręcznie i skonfiguruj monitoring, który zaalarmuje, jeśli przez rok i jeden dzień nie pojawi się zgłoszenie udanego uruchomienia.
Czas serwera może nie pokrywać się z rokiem biznesowym: na serwerze w UTC zadanie uruchamia się o 01:00 w Europie Środkowej i o 19:00 31 grudnia w Nowym Jorku. Jeśli maszyna jest wtedy wyłączona, cron nie nadrobi zaległości, a anacron lub timer systemd z Persistent=true – tak. Dla uruchomień kwartalnych użyj 0 0 1 1,4,7,10 * lub równoważnego 0 0 1 */3 *.