首页/系统/信创系统运维速查/OnCalendar 日历表达式写法
服务与运维65 条

OnCalendar 日历表达式写法

OnCalendar 支持 * 通配、.. 区间、逗号枚举与 / 步进;写法不确定时先用 systemd-analyze calendar 验证并查看下次触发时间。

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

验证表达式

验证表达式
systemd-analyze calendar 'Mon..Fri *-*-* 09:00:00'
systemd-analyze calendar '*-*-* 0/6:00:00' --iterations=3
systemd-analyze calendar 'weekly' --iterations=3

常用写法

常用写法
OnCalendar=hourly                 # 每小时(等价 *-*-* *:00:00)
OnCalendar=daily                  # 每天 00:00
OnCalendar=Mon..Fri *-*-* 08:00:00
OnCalendar=*-*-* 02,14:30:00      # 每天 02:30 与 14:30
OnCalendar=Sun *-*-* 03:00:00     # 每周日 03:00
触发时刻按系统时区(timedatectl 查看);跨时区部署先确认时区再定表达式。

易错点

  • 0/6 表示从 0 点起每 6 小时,与 6/6 含义不同;上线前用 systemd-analyze calendar 验证
  • daily/weekly 等宏与显式表达式混用时注意语义一致,避免看起来一样、实际触发时刻不同

数据来源与参考

  • man 7 systemd.time(日历表达式)
  • man 1 systemd-analyze(calendar)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌