Cómo monitorizar un cron job

Los cron jobs fallan en silencio. La monitorización heartbeat convierte una ejecución ausente en una alerta. Configuración para cron, timers de systemd, Kubernetes y GitHub Actions.

El problema de cron es que no pasa nada cuando falla. Ninguna página se cae, no se muestra ningún error; simplemente la copia de seguridad no está cuando la necesitas.

El patrón heartbeat

Asigna a cada trabajo una URL única. El trabajo la llama cuando termina con éxito. Un monitor espera la llamada cada N horas; si se retrasa, recibes una alerta.

Cron

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

Timers de systemd

Añade ExecStartPost=/usr/bin/curl -fsS https://hb.uptimepush.com/p/TOKEN a la unidad de servicio.

CronJob de Kubernetes

Añade la llamada a curl al comando del contenedor con && para que solo se ejecute si tiene éxito.

GitHub Actions

Añade un paso final que llame a la URL con curl, guardando el token como secret.

Periodos de gracia

Establece un periodo de gracia algo mayor que la ejecución normal más larga del trabajo, para que una noche lenta no te despierte con una alerta.

Tu web no duerme. Ahora tú sí puedes.

Empieza a monitorizar en minutos. Tus primeros 10 monitores corren de nuestra cuenta.

Empieza gratis – sin tarjeta ↗