Linux定时任务crontab与anacron区别详解
时间:2026-11-14 07:15 作者:emer 分类: Linux
前言
crontab 适合服务器长期在线、精确到分钟的定时任务,但服务器夜间关机或休眠时,错过的任务就不会补跑。anacron 用来补齐这种情况:系统启动后把错过的任务按天/周补执行,不要求精确时刻。本文讲清两者区别、各自适用场景、配置方式,帮助正确选择定时机制。
操作步骤
1. 查看当前 crontab
crontab -l
2. 编辑 crontab
crontab -e
示例:每天 2 点备份:
0 2 * * * /opt/backup.sh
3. anacron 配置文件位置
cat /etc/anacrontab
格式为:周期 延迟分钟 任务标识 命令:
1 65 cron.daily run-parts /etc/cron.daily
4. 对比要点
- crontab:精确到分,要求系统一直运行,错过不补。
- anacron:按天/周/月补跑,不看具体时刻,适合关机重启场景。
5. 系统级定时目录
ls /etc/cron.daily /etc/cron.weekly /etc/cron.monthly
这些目录里的脚本由 cron/anacron 按周期执行。
6. 查看 anacron 是否启用
systemctl status anacron
常见坑
- 以为 crontab 关机后会自动补跑,实际错过即丢弃。
- 桌面/笔记本类机器用 anacron 补跑,服务器长期在线用 crontab。
- anacron 延迟分钟是启动后等待多久再执行,避免开机瞬间抢占资源。
- 两者配置互不读取,写在错位置不生效。
- 时间用 UTC 还是本地,取决于系统时区设置。
- 任务脚本本身要可执行并带解释器路径,否则静默失败。
- anacron 不适合精确到分钟的任务,只按周期补。
总结
精确周期、长期在线选 crontab;可能关机重启、只要求每天跑一次选 anacron。服务器常驻用 crontab,桌面或间歇开机机器靠 anacron 补跑。系统定时目录里的脚本会被自动调度,掌握两者分工后不会再选错。
遇到问题加QQ23979811 协助处理