Comment surveiller une tâche cron

Les tâches cron échouent en silence. La surveillance heartbeat transforme une exécution manquante en alerte. Configuration pour cron, timers systemd, Kubernetes et GitHub Actions.

Le problème avec cron, c'est que rien ne se passe en cas d'échec. Aucune page ne tombe, aucune erreur ne s'affiche ; la sauvegarde n'est simplement pas là quand vous en avez besoin.

Le principe du heartbeat

Attribuez à chaque tâche une URL unique. La tâche l'appelle en cas de succès. Un moniteur attend l'appel toutes les N heures ; s'il est en retard, vous recevez une alerte.

Cron

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

Timers systemd

Ajoutez ExecStartPost=/usr/bin/curl -fsS https://hb.uptimepush.com/p/TOKEN à l'unité de service.

CronJob Kubernetes

Ajoutez l'appel curl à la commande du conteneur avec && afin qu'il ne s'exécute qu'en cas de succès.

GitHub Actions

Ajoutez une dernière étape qui appelle l'URL avec curl, le token étant stocké comme secret.

Délais de grâce

Définissez un délai de grâce légèrement supérieur à la plus longue exécution normale de la tâche, pour qu'une nuit un peu lente ne vous réveille pas.

Votre site ne dort jamais. Vous, désormais, oui.

Commencez à surveiller en quelques minutes. Vos 10 premiers moniteurs sont offerts.

Démarrer gratuitement – sans carte ↗