定时任务与计划50 条

anacron 命令用法

手动触发与校验 anacron:-f 忽略时间戳强制跑、-n 前台执行不 fork、-T 校验配置语法、-d 只输出不执行;排错批任务必备。

Linux 运维命令速查系统更新于 2026-10-13

anacron 命令行怎么用

anacron 负责补跑「错过执行」的周期任务,常见于不常开机的机器。命令行上有几个开关最实用:-f 忽略时间戳强制运行、-n 前台执行不 fork、-d 只输出不执行、-T 校验配置语法。排查批处理任务是否被错过时,这几个组合比反复改配置高效得多。

基本信息

用途手动补跑与校验 anacron 任务
语法anacron [-f] [-n] [-d] [-T] [任务标识]
时间戳位置/var/spool/anacron/<任务名>,内容为日期
触发方式通常由 cron 每小时调用一次检查是否需要补跑

典型使用场景

  • 机器停机数日后确认哪些任务需要补跑
  • 排错时先干跑一遍,确认将要执行什么
  • 校验 anacrontab 语法,避免配置错误静默失效
  • 前台观察任务输出,直接看到报错
  • 变更后立即强制验证任务路径是否可用
  • 确认上次执行日期,判断任务是否长期未运行

常用示例

常用示例
sudo anacron -T                 # 校验 /etc/anacrontab 语法
sudo anacron -d -n              # 干跑到前台:只打印将要执行的任务
sudo anacron -f -n cron.daily   # 立即强制补跑 daily,前台观察输出
cat /var/spool/anacron/cron.daily   # 查看上次执行日期(YYYYMMDD)
systemctl list-timers anacron.timer --no-pager | head   # 定时器视角
grep -vE '^\s*#|^\s*$' /etc/anacrontab                 # 查看有效配置行

常用选项

选项作用说明
-f忽略时间戳强制运行用于立即验证,不改变判断逻辑
-n前台执行不 fork能直接看到输出与报错
-d只输出不执行干跑,最安全的预览方式
-T校验配置文件语法改完配置后的第一件事
任务标识指定单个任务如 cron.daily、cron.weekly
anacron 通常由 cron 每小时触发一次来判断该不该补跑,而不是自身常驻;排查时要同时看这两条链路的配置。
-f 会绕过节流与时间戳立即执行,在业务窗口之外滥用可能干扰生产;建议先用 -d -n 干跑确认范围,再决定是否加 -f。
-n 的前台运行时长等于任务本身的耗时,别在交互式 SSH 会话里不带 timeout 直接跑重活,容易把自己锁在等待里。
补跑完成后可以再看一眼时间戳文件的内容:日期推进到当天,说明这次补跑已被记录,之后的判断逻辑不会重复触发。

易错点

  • 不看配置直接 -f 补跑:在业务窗口外触发重任务,影响线上服务
  • 改完 anacrontab 不校验语法:配置错误静默失效,任务长期不执行
  • 误以为 anacron 是常驻服务:找不到进程就判断功能失效,实际由 cron 触发
  • 只改 anacrontab 不看时间戳文件:判断逻辑被复杂化,排查时抓不住重点

数据来源与参考

  • man 8 anacron

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌