Monitorar um cron do Linux
O problema clássico com cron : quando um job falha ou para de rodar, ninguém é avisado. O email local do cron acaba parando em/var/mail que ninguém lê. Resultado: um backup quebrado silenciosamente há 3 semanas, que você descobre no dia em que precisa dele.
Por que os crons falham em silêncio
- O servidor reiniciou e o crond não voltou.
- O PATH do cron é diferente do shell interativo → comando não encontrado.
- O disco está cheio, ou um lock (flock) bloqueia a execução.
- O script quebra mas retorna o código 0, então "está tudo bem".
Procura a linha do crontab em si: flags do curl, escapar o %, evitar sobreposição? Ver o guia de cron a cada 5 minutos.
A solução: um dead man's switch
Em vez de monitorar o servidor, você pede pro cron sinalizar que rodou. Se ele não sinaliza na hora esperada, é ele mesmo o problema. Crie um check no Cron-Ping, pegue sua URL e adicione um curl :
# antes: você nunca sabe se está rodando
0 2 * * * /opt/backup.sh
# depois: ping apenas se o script tiver sucesso
0 2 * * * /opt/backup.sh && curl -fsS https://cron-ping.com/p/<token>Distinguir sucesso de falha
0 2 * * * /opt/backup.sh && curl -fsS https://cron-ping.com/p/<token> || curl -fsS https://cron-ping.com/p/<token>/failSe backup.sh falha, a gente chama /fail e você recebe um alerta imediato, sem esperar o período de tolerância.
Verificar se o cron está rodando direito
systemctl status cron # Debian/Ubuntu
systemctl status crond # RHEL/CentOS
grep CRON /var/log/syslogMonitore esse cron em 2 minutos com o Cron-Ping
Começar grátis