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 直接跑重活,容易把自己锁在等待里。
补跑完成后可以再看一眼时间戳文件的内容:日期推进到当天,说明这次补跑已被记录,之后的判断逻辑不会重复触发。