systemd 定时器速查
共 23 条 systemd 定时器配置与管理命令,覆盖定时器单元结构、OnCalendar 写法、 相对与补跑、管理命令四组内容。支持搜索与分类筛选,点击即可复制。
定时器单元结构
一个 .timer 通常搭配一个同名 .service。
| 配置 / 命令 | 说明 |
|---|---|
| timer 与 service 的 [Unit] 段 | |
| [Timer] 段:触发时间与补跑 | |
| [Install] 段:enable 时挂到 timers.target | |
| unit 名相同(后缀不同),timer 触发对应 service | |
| 在 [Timer] 里指定要触发的其它 service |
OnCalendar 时间写法
格式:星期 年-月-日 时:分:秒。
| 配置 / 命令 | 说明 |
|---|---|
| 每天 02:00 执行 | |
| 工作日 09:00 执行 | |
| 每 15 分钟一次 | |
| 内置快捷别名 | |
| 每周日 03:00 | |
| 校验写法并查看下次触发时间 |
相对与补跑
相对触发与错过后补跑。
| 配置 / 命令 | 说明 |
|---|---|
| 开机后 15 分钟触发一次 | |
| 上次运行后 1 小时再次触发 | |
| systemd 启动后 5 分钟触发 | |
| 错过的任务在下次启动时补跑一次 | |
| 随机延迟 0-300 秒,避免多机同时跑 |
管理命令
启用、查看与手动触发。
| 配置 / 命令 | 说明 |
|---|---|
| 新增 / 修改 unit 后必须重载 | |
| 设为开机自启并立即生效 | |
| 列出所有定时器及下次触发时间 | |
| 查看定时器状态 | |
| 手动触发一次对应服务 | |
| 查看定时任务执行日志 | |
| 查看 unit 的生效配置 |
使用说明
systemd 定时器速查:timer 单元结构、OnCalendar 写法、相对触发与补跑、管理命令;支持搜索与分类筛选,点击即可复制。
- 按用途点分类:定时器单元结构、OnCalendar 时间写法、相对与补跑、管理命令。
- 先在 /etc/systemd/system/ 写 myjob.service 与 myjob.timer,再 daemon-reload。
- 用 systemd-analyze calendar 校验时间写法并查看下次触发。
- enable --now 启动定时器,用 list-timers 与 journalctl 验证。
常见问题
- systemd timer 和 cron 该用哪个?
- timer 的优势:可依赖 systemd 服务、能记录日志到 journal、支持错过后补跑(Persistent)、可与其它 unit 定义依赖。新系统建议用 timer,cron 仍适合简单场景。
- 改了配置为什么不生效?
- 新增或修改 .timer/.service 后必须执行 sudo systemctl daemon-reload,再 restart/enable 对应 timer,否则 systemd 仍用旧配置。
- 错过的任务会自动补跑吗?
- 只有设置 Persistent=true 时,机器关机期间错过的触发会在下次启动后补跑一次。否则跳过不再补。
- OnCalendar 写法看不懂怎么办?
- 用 systemd-analyze calendar "…" 校验并显示「下次触发时间」。格式为「星期 年-月-日 时:分:秒」,也可直接用 hourly / daily / weekly 等别名。