首页/系统/Linux 运维命令速查/systemd timer 与 cron 如何选
定时任务与计划50 条

systemd timer 与 cron 如何选

两者都能定时:timer 具备依赖、日志、资源控制、补跑与错峰能力,cron 胜在简单通用;新服务优先 timer,存量脚本继续 cron 也完全合理。

Linux 运维命令速查系统更新于 2026-10-12
用途技术选型对照
timer 优势依赖/补跑/资源控制/日志统一
cron 优势轻量、跨平台、写法人尽皆知

能力对照

能力cronsystemd timer
最小粒度1 分钟1 秒级
错过补跑不支持(anacron 补天级)Persistent=true
错峰抖动sleep 手工实现RandomizedDelaySec
依赖网络/挂载脚本内自行等待After=/Requires= 声明
日志邮件/syslogjournal 统一
资源限制需外层工具MemoryMax/CPUWeight 等
管理入口crontab -esystemctl + unit 文件

选择建议

选择建议
# 新服务、需要等待网络、要补跑/限资源 → timer
# 简单周期任务、容器内、跨发行版脚本 → cron
systemctl list-timers --all | head
两者可以共存;迁移时别「一刀切」,先迁有依赖与补跑诉求的任务,收益最大、风险最小。

易错点

  • timer 用 OnCalendar 时区跟随系统;跨时区业务注意 timedatectl 与 UTC 日志换算
  • cron 迁移 timer 后忘记 systemctl enable --now,重启即失效

数据来源与参考

  • man 5 systemd.timer
  • man 5 crontab
  • systemd 官方文档:timers

相关工具

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