首页/系统/信创系统运维速查/systemd timer 定时任务
服务与运维65 条

systemd timer 定时任务

用 .timer + .service 组合替代 cron:支持日历表达式、随机延迟与错过补跑(Persistent),执行记录进 journal 便于审计与排障。

信创系统运维速查系统更新于 2026-10-12

示例 /etc/systemd/system/backup.timer

示例 /etc/systemd/system/backup.timer
[Unit]
Description=Daily backup timer

[Timer]
OnCalendar=*-*-* 02:30:00
Persistent=true
RandomizedDelaySec=300
Unit=backup.service

[Install]
WantedBy=timers.target

配套 /etc/systemd/system/backup.service

配套 /etc/systemd/system/backup.service
[Unit]
Description=Daily backup job

[Service]
Type=oneshot
ExecStart=/opt/scripts/backup.sh

启用与查看

启用与查看
systemctl daemon-reload
systemctl enable --now backup.timer
systemctl list-timers --all
journalctl -u backup.service -n 50 --no-pager
timer 未显式写 Unit= 时按同名约定找 backup.service;list-timers 显示下次触发时间与上次执行结果。

易错点

  • timer 与 service 名字对不上(又没写 Unit=)时 enable 了也不触发
  • 一次性任务用 Type=oneshot;要补跑停机期间错过的任务必须配 Persistent=true

数据来源与参考

  • man 5 systemd.timer
  • openEuler 文档:systemd 定时任务
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌