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。
小时为 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。
systemd-analyze calendar <表达式> 可校验语法并显示下次触发时间; 加 --iterations=N 可输出未来 N 次。
特殊别名
| 别名 | 等价语法 |
|---|---|
minutely | *-*-* *:*:00 |
hourly | *-*-* *:00:00 |
daily | *-*-* 00:00:00 |
weekly | mon *-*-* 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,fri | mon..fri | 工作日 0:00 |
sat,sun | sat..sun | 仅周末 0:00 |
mon,wed,fri | — | 仅周一 / 三 / 五 0:00 |
12:05 | 12:05 | 每天 12:05 |
*/5 | 0/5 | 每 5 分钟 |
mon..wed 30/10 | mon,tue,wed 30/10 | 周一 / 二 / 三 , 每个整点后第 30、 40、 50 分 |
mon..fri 8..17,22:0/15 | — | 工作日 8 – 18 时与 22 – 23 时之间每 15 分钟一次 |
fri 12..13:5/20 | fri 12,13:5/20 | 周五 12:05、 12:25、 12:45、 13:05、 13:25、 13:45 |
12,14,16,18,20,22:5 | 12/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 |