Un monitor de tareas cron funciona al revés que una comprobación de una web: es tu tarea la que llama a una URL cada vez que se ejecuta. Si la llamada no llega a tiempo, recibes una alerta. Úsalo para copias de seguridad, importaciones nocturnas, workers de colas y cualquier otra cosa que se ejecute sin que nadie la vigile.
Crea el monitor de tareas cron
Abre Monitors, elige el filtro Cron jobs y después New cron job.En The job runs, elige On an interval u On a cron schedule.Para un horario cron, introduce la Cron expression de tu crontab, por ejemplo 0 3 * * *, y la Time zone en la que se ejecuta el crontab del servidor. El formulario muestra las próximas ejecuciones mientras escribes y tiene en cuenta el horario de verano.Define el Grace period: cuánto puede retrasarse el ping antes de que te avisemos.Si quieres, define un Maximum run time para recibir una alerta cuando una ejecución tarde demasiado.Marca los canales de alerta y elige Create monitor. Copia la Ping URL de la página que se abre.
Llama a la URL desde tu tarea
La configuración más sencilla hace ping cuando la tarea termina bien:
0 3 * * * /usr/local/bin/backup.sh && curl -fsS -m 10 –retry 3 -o /dev/null https://app.uptimecheck.com/api/hb/your-token
Al unirlos con &&, el ping solo se envía si la tarea termina bien. Vale una petición GET, POST o HEAD.
Duración, códigos de salida y salida
Llama a la URL de ping añadiendo /start cuando empiece la tarea. Verás cuánto ha durado cada ejecución, y la duración máxima podrá generar una alerta.Llámala con /fail, o con el código de salida, como /1, para indicar cómo terminó la ejecución. /0 significa éxito.Envía por POST la salida de la tarea y aparecerá junto a los fallos y en la alerta. Guardamos 10.000 caracteres, del principio y del final, y rechazamos las peticiones de más de 64 kB, así que envía la última parte de un log largo, como en este ejemplo.
0 3 * * * curl -fsS -m 10 –retry 3 -o /dev/null https://app.uptimecheck.com/api/hb/your-token/start; /usr/local/bin/backup.sh > /tmp/backup.log 2>&1; code=$?; tail -c 60000 /tmp/backup.log | curl -fsS -m 10 –retry 3 –data-binary @- -o /dev/null https://app.uptimecheck.com/api/hb/your-token/$code
La página de la tarea cron muestra los dos ejemplos con tu propia URL de ping; cópialos de ahí. Para Laravel, Kubernetes, GitHub Actions, systemd y Windows, consulta los ejemplos de ping para tareas cron. Más información sobre la monitorización de tareas cron y cómo monitorizar tareas cron con heartbeats.