Appendix D · Calendar Events

附录 D 日历事件

PVE 计划调度(备份 / 复制 / 通知匹配等)所用的 systemd 日历事件语法。

D.日历事件Calendar Events

D.1.调度格式

PVE 调度使用 systemd time calendar event 格式 —— 一条表达式可指定一或多个时间点。基本语法:

[WEEKDAY] [[YEARS-]MONTHS-DAYS] [HOURS:MINUTES[:SECONDS]]

可同时配置「在哪些天」与「几点开始」。例 :每个工作日 22 时执行 :mon,tue,wed,thu,fri 22 , 也可缩写为 mon..fri 22。

NOTE

小时为 24 小时制。

为简化每客户机的多次重复 , 可设「重复间隔」—— 在起始时间本身 + 该时间加上重复间隔的整数倍触发。例 :从 8:00 到 9:00 每 15 分钟一次 :8:00/15。无 : 时数值视作分钟 ; 有 : 时左为小时、右为分钟。 * 表示匹配任意值。

D.2.详细规则

weekdays
用三字母英文缩写 :sun / mon / tue / wed / thu / fri / sat。逗号分隔多个 , 范围用 ..(如 mon..fri), 可混用。省略相当于 *。
time-format
小时与分钟用 : 分隔 —— 两侧都可以是列表或范围(与 weekday 同语法)。先写小时再写分钟 , 不需要时小时可省略(即视作 *)。范围 :小时 0 – 23 , 分钟 0 – 59。
NOTE

systemd-analyze calendar <表达式> 可校验语法并显示下次触发时间; 加 --iterations=N 可输出未来 N 次。

特殊别名

别名等价语法
minutely*-*-* *:*:00
hourly*-*-* *:00:00
daily*-*-* 00:00:00
weeklymon *-*-* 00:00:00
monthly*-*-01 00:00:00
yearly / annually*-01-01 00:00:00
quarterly*-01,04,07,10-01 00:00:00
semiannually / semi-annually*-01,07-01 00:00:00

示例

表达式等价写法含义
mon,tue,wed,thu,frimon..fri工作日 0:00
sat,sunsat..sun仅周末 0:00
mon,wed,fri—仅周一 / 三 / 五 0:00
12:0512:05每天 12:05
*/50/5每 5 分钟
mon..wed 30/10mon,tue,wed 30/10周一 / 二 / 三 , 每个整点后第 30、 40、 50 分
mon..fri 8..17,22:0/15—工作日 8 – 18 时与 22 – 23 时之间每 15 分钟一次
fri 12..13:5/20fri 12,13:5/20周五 12:05、 12:25、 12:45、 13:05、 13:25、 13:45
12,14,16,18,20,22:512/2:5每天 12:05 起每 2 小时一次到 22:05
**/1每分钟(最小间隔)
*-05—每月 5 号
Sat *-1..7 15:00—每月第一个周六 15:00
2015-10-21—2015 年 10 月 21 日 00:00