Administrator
Published on 2026-10-27 / 1 Visits
0

Ubuntu22.04 主流定时任务

#AI

Ubuntu22.04 主流定时任务一共4大类

注意:cron 下面又分好几种配置入口,属于同一套 cron 服务下不同写法

1. cron(最常用,周期性定时)

底层都是 cron 守护进程,4种配置方式:

  1. 用户级 crontab:crontab -e / sudo crontab -e,每个用户独立任务,保存在 /var/spool/cron/crontabs/
  2. 系统全局 /etc/crontab:必须指定运行用户,系统级定时
  3. /etc/cron.d/ 目录:放独立任务文件,适合软件包托管定时,同样要写用户字段
  4. cron 目录脚本:/etc/cron.hourly、cron.daily、cron.weekly、cron.monthly,放可执行脚本,由 run-parts 执行(Ubuntu22.04里这套默认交给 anacron 调度)

✅ 特点:适合服务器、长期开机;机器关机错过时间,任务直接丢失,不会补跑

2. anacron(适合笔记本、不常开机器,按天周期)

配置文件:/etc/anacrontab
只支持按天粒度(日/周/月),不支持精确到几点几分;开机后检查错过任务,稍后自动补跑。
Ubuntu22.04 默认 anacron 由 systemd timer 触发,不是 cron 触发了

3. systemd timer(现代推荐,systemd 原生定时)

需要成对文件:xxx.service(任务)+ xxx.timer(定时规则)

/etc/systemd/system/xxx.service
/etc/systemd/system/xxx.timer

✅ 优点:journald 原生日志、支持依赖、资源限制、Persistent=true 开机补跑、RandomizedDelaySec 随机延迟;功能最强,配置稍繁琐
查看:systemctl list-timers

4. at(一次性定时任务)

只执行一次,到点跑完就消失:

at 14:30
atq    # 查看任务
atrm   # 删除任务

适合临时一次性任务,不适合循环定时


快速对比小结

方式周期类型关机补跑精度典型场景
cron循环❌分钟级服务器常规定时
anacron日/周/月✅粗粒度台式机笔记本备份
systemd timer循环✅(Persistent)高精度需要日志、依赖、资源管控
at一次性❌时间点临时单次任务

补充:还有小众方案(bash 脚本 sleep 循环、fcron 第三方包),不属于系统自带原生方案,一般不推荐。