Een Linux cronjob monitoren
Het klassieke probleem met cron : als een job faalt of niet meer start, krijgt niemand een melding. De lokale mail van cron belandt in/var/mail die niemand leest. Het resultaat: een backup die al 3 weken stilletjes kapot is, en die je ontdekt op de dag dat je hem echt nodig hebt.
Waarom crons stilletjes falen
- De server is herstart en crond is niet weer opgestart.
- Het PATH van de cron wijkt af van de interactieve shell → command not found.
- De schijf is vol, of een lock (flock) blokkeert de uitvoering.
- Het script crasht maar geeft exit code 0 terug, dus "alles oké".
Zoek je de crontab-regel zelf — curl-flags, % escapen, overlap voorkomen? Bekijk de gids cron elke 5 minuten.
De oplossing: een dead man's switch
In plaats van de server te monitoren, vraag je de cron om te melden dat hij gedraaid heeft. Meldt hij zich niet op tijd, dan is de cron zelf het probleem. Maak een check aan op Cron-Ping, pak je URL en voeg een curl :
# voor: je weet nooit of het draait
0 2 * * * /opt/backup.sh
# na: ping alleen als het script slaagt
0 2 * * * /opt/backup.sh && curl -fsS https://cron-ping.com/p/<token>Onderscheid maken tussen success en fail
0 2 * * * /opt/backup.sh && curl -fsS https://cron-ping.com/p/<token> || curl -fsS https://cron-ping.com/p/<token>/failAls backup.sh faalt, roepen we /fail aan en krijg je meteen een melding, zonder te wachten op de respijtperiode.
Controleren of cron wel draait
systemctl status cron # Debian/Ubuntu
systemctl status crond # RHEL/CentOS
grep CRON /var/log/syslogMonitor deze cron in 2 minuten met Cron-Ping
Gratis beginnen