定时方案对比:at / anacron / systemd timer

一、at:一次性定时

echo "shutdown -h now" | at 23:00      # 今晚 11 点执行一次
atq                                   # 查看队列
atrm 1                                # 删除

适合”几小时后跑一次”的临时任务,不像 cron 会反复触发。

二、anacron:断电能补跑

面向笔记本/经常关机的主机:记录上次执行时间,开机后若错过周期则补跑(如 /etc/anacrontab 的 daily/weekly)。精度低(按天),但可靠性高。

三、systemd timer:现代替代

比 cron 更精确、可依赖其他 unit、带日志:

# /etc/systemd/system/backup.timer
[Timer]
OnCalendar=*-*-* 02:00:00
Persistent=true        # 错过也补跑
[Install]
WantedBy=timers.target

配对的 backup.service 定义实际执行,systemctl enable backup.timer 启用。

四、选型对比

方案 适用
cron 通用周期任务,简单直观
at 一次性延后执行
anacron 关机主机补跑日级任务
systemd timer 新系统、需依赖/高精度/日志