如何监控 cron 任务

cron 任务会静默失败。心跳监控可将漏跑的任务转化为告警。涵盖 cron、systemd 定时器、Kubernetes 和 GitHub Actions 的设置。

cron 的问题在于失败时什么都不会发生。没有页面宕机,没有错误提示;只是当你需要备份时,它不在那里。

心跳模式

为每个任务分配一个唯一 URL。任务成功时调用它。监控器期望每 N 小时收到一次调用;如果迟到,你就会收到告警。

Cron

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

systemd 定时器

在服务单元中添加 ExecStartPost=/usr/bin/curl -fsS https://hb.uptimepush.com/p/TOKEN。

Kubernetes CronJob

用 && 将 curl 调用追加到容器命令之后,这样它只在成功时运行。

GitHub Actions

添加最后一个步骤来 curl 该 URL,并将令牌存储为 secret。

宽限期

将宽限期设置得略长于任务正常运行的最长时间,这样偶尔跑得慢一点也不会在深夜把你叫醒。

您的网站不休息,但您可以。

几分钟即可开始监控。前 10 个监控项由我们买单。

免费开始 – 无需信用卡 ↗