Come monitorare un cron job

I cron job falliscono in silenzio. Il monitoraggio heartbeat trasforma un'esecuzione mancata in un avviso. Configurazione per cron, timer systemd, Kubernetes e GitHub Actions.

Il problema di cron è che, quando fallisce, non succede nulla. Nessuna pagina va offline, nessun errore viene mostrato; il backup semplicemente non c'è quando ti serve.

Il pattern heartbeat

Assegna a ogni job un URL univoco. Il job lo chiama in caso di successo. Un monitor si aspetta la chiamata ogni N ore; se è in ritardo, ricevi un avviso.

Cron

0 3 * * * /usr/local/bin/backup.sh && curl -fsS -m 10 https://hb.uptimepush.com/p/TOKEN

Timer systemd

Aggiungi ExecStartPost=/usr/bin/curl -fsS https://hb.uptimepush.com/p/TOKEN alla unit del servizio.

CronJob Kubernetes

Aggiungi la chiamata curl al comando del container con && in modo che venga eseguita solo in caso di successo.

GitHub Actions

Aggiungi uno step finale che chiama l'URL con curl, con il token salvato come secret.

Periodi di tolleranza

Imposta un periodo di tolleranza leggermente più lungo della durata normale massima del job, così una notte lenta non ti sveglia con un avviso.

Il tuo sito non dorme mai. Adesso tu puoi.

Inizia a monitorare in pochi minuti. I primi 10 monitor li offriamo noi.

Inizia gratis – senza carta ↗