服务公告
用 anacron 补上错过的定时任务
发布时间:2025-11-09 07:43
## 两种机制的对比 cron 的模型是到点触发:分钟字段一到就执行,机器关机、重启维护或宕机,任务错过就错过了,系统不会补。anacron 的模型以天为单位描述任务:开机后检查各任务的上次执行时间,超过设定间隔就补跑一次,并记录时间戳供下次判断。前者精度到分钟,适合每小时乃至每几分钟的密集调度;后者精度到天,专门服务日备份、证书检查、磁盘清理这类错过也必须补的场景。两者的差异本质上是触发方向不同:cron 等时间到了做事,anacron 等机器可用后补账。 ## 各自的适用面 备份与清理类任务,错过的代价大于晚跑的代价,晚一小时补跑完全可接受,漏跑一天则意味着恢复点缺失,这类交给 anacron。监控采集与数据同步这类准实时任务,错过就错过,补跑反而制造重复数据或乱序,交给 cron。很多发行版的 /etc/cron.daily、cron.weekly 目录实际就是由 anacron 驱动的,两者是配合关系而非竞争关系:cron 负责细粒度调度,anacron 为日级任务兜底。判断标准可以简化成一句话,任务以分钟小时计用 cron,以天计且不允许漏跑用 anacron。 ## 落地与选择建议 anacron 的配置集中在 /etc/anacrontab,一行一个任务,字段依次是间隔天数、随机延迟上限、任务标识与命令。 ``` 7 15 weekly-backup /usr/local/bin/backup.sh ``` 表示距上次执行超过七天时,开机后最多延迟十五分钟补跑;延迟字段还能错开多个任务的启动时间,避免开机瞬间互相抢资源。执行记录落在 /var/spool/anacron 下的同名文件里,怀疑漏跑时先查这里的日期戳,再对照任务自身的输出日志,两边的日期对得上才算真正跑过。两套机制并存时要留意重复注册:同一个任务既挂在 cron.daily 又写进自定义 anacrontab,就可能一天跑两次,收敛到一处。顺云云服务器虽然常年在线,但系统更新与维护窗口仍可能跨过任务时间点,把日级任务交给 anacron,比指望机器永远不重启更稳妥。上一篇: 服务器采购从买断到租用的演变
下一篇: 长期运营服的降配与升级时机