systemd timer 与 crontab 的对比

更新日期: 2023-01-30 阅读次数: 1471 字数: 213 分类: Linux

排查 certbot 不自动更新证书问题时,第一次知道 systemd timer 也能做为系统定时任务的管理工具。但是他与之前熟知的 crontab 有什么区别呢?

列举一下 systemd timer 的优势

  • 支持微妙、毫秒、秒级的定时任务;而 crontab 只能支持到分钟级
  • 上次任务没有执行完时,不会重复执行定时任务;而 crontab 需要手动处理单例问题
  • 支持只执行一次的定时点的计划任务
  • 方便的指定运行用户。

两个配置文件

每一个“.timer”文件必须有一个对应的“.service”文件存在,这样计时器才有意义。默认情况下,如果Timer和Service的文件名(不包含扩展名)相同,则“.timer”文件控制“.service”文件的运行,比如“foo.timer”和“foo.service”

常用操作

由于 timer 也是一个 systemd unit,所以操作基本跟 service 一样:

  • systemctl start [UnitName] //启动单元
  • systemctl enable [UnitName] //开机自动执行该单元
  • systemctl list-timers //查看所有已启动的timer
  • systemctl stop [UnitName] //关闭单元
  • systemctl disable [UnitName] //关闭开机自动执行

参考

  • https://www.junmajinlong.com/linux/systemd/systemd_timer/
  • https://m.toutiao.com/is/BRdmDwh/ - 使用Systemd配置定时任务

tags: systemd

关于作者 🌱

我是来自山东烟台的一名开发者,有敢兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式