Linux systemd 定时任务
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
Linux 定时任务 - systemd timer
本文介绍了如何使用 systemd 来设置定时任务,该方法相比传统的 crond 服务具有更高精度、资源使用限制和灵活的配置优势。
systemd 定时任务的优点
- 可以精确到秒,而 crond 只能精确到分钟。
- 可以设置内存和 CPU 的使用限制。
- 通过条件、依赖关系等进行配置,执行任务更加灵活。
以大文件远程备份为例,systemd timer 可以防止未完成的任务重叠,通过建立任务之间的依赖关系来有序执行。
systemd timer 原理
systemd 定时任务通过 .timer 单元和 .service 单元来管理任务。.timer 单元定义定时规则,与之关联的 .service 单元定义要执行的服务或命令。定时器触发时启动相应的 .service 单元。
systemd 单元
单元是 systemd 的最小管理单位,它们相互调用和依赖,组成任务管理系统。常见单元类型包括 service、target、timer 和 slice。单元描述文件分布在 /lib/systemd/system、/etc/systemd/system 和 /usr/lib/systemd/system 目录中。
设置 systemd 定时任务
举例说明了如何创建一个 service unit 和 timer unit 来定期执行脚本。service unit 定义了任务执行方式,而 timer unit 定义了执行频率。
例如,创建一个 service unit 来执行 check_https.sh 脚本,使用 Type=oneshot 表示任务执行一次后退出。接着创建一个 timer unit 来每24小时触发一次 service unit。
timer unit 的 [Timer] 部分包含多种时间设置选项,如 OnBootSec、OnUnitActiveSec、OnCalendar 等,允许基于相对时间或绝对时间执行任务。
启动和管理定时任务
介绍了如何启动定时任务并设置开机自启动,以及如何查看、关闭和查询定时任务状态的命令。
相关官方文档链接提供了更详细的信息。
想要了解更多内容?