Problem z cronem polega na tym, że gdy zawiedzie, nic się nie dzieje. Żadna strona nie pada, nie pojawia się żaden błąd; kopii zapasowej po prostu nie ma, gdy jej potrzebujesz.
Wzorzec heartbeat
Nadaj każdemu zadaniu unikalny adres URL. Zadanie wywołuje go po pomyślnym zakończeniu. Monitor oczekuje wywołania co N godzin; jeśli się spóźni, otrzymasz alert.
Cron
0 3 * * * /usr/local/bin/backup.sh && curl -fsS -m 10 https://hb.uptimepush.com/p/TOKENTimery systemd
Dodaj ExecStartPost=/usr/bin/curl -fsS https://hb.uptimepush.com/p/TOKEN do jednostki usługi.
Kubernetes CronJob
Dołącz wywołanie curl do polecenia kontenera za pomocą &&, aby uruchamiało się tylko po sukcesie.
GitHub Actions
Dodaj ostatni krok wywołujący adres URL przez curl, z tokenem zapisanym jako secret.
Okresy karencji
Ustaw okres karencji nieco dłuższy niż najdłuższe normalne wykonanie zadania, aby wolniejsza noc nie budziła Cię alertem.