CRON 表达式间隔
CRON 表达式用于配置触发器的特定实例。主要用于计划的重复触发。它是一个由 6 个或 7 个字段组成的字符串,用于表示计划的个别值。这些字段由空格分隔,并且它们包含任何允许值的各种组合。
CRON 表达式可以很简单,如下所示:* * * * ? *,也可以很复杂,如下所示:0/5 14,18,3-39,52 * ? JAN,MAR,SEP MON-FRI 2012-2020
CRON 表达式中可以使用的值的列表:
名称 |
必需 |
值 |
允许的特殊字符 |
---|---|---|---|
秒 |
是 |
0-59 |
, - * / R |
分钟 |
是 |
0-59 |
, - * / R |
小时 |
是 |
0-23 |
, - * / R |
日 |
是 |
1-31 |
, - * / ? L W |
月 |
是 |
1-12 或 JAN-DEC |
, - */ |
星期几 |
是 |
0-6 或 SUN-SAT |
, - / ? L # |
年 |
是 |
1970-2099 |
, - * / |
CRON 表达式语法如下所示:
┌────────── 秒 (0–59) │ ┌────────── 分钟 (0–59) │ │ ┌────────── 小时 (0–23) │ │ │ ┌────────── 日 (1 – 31) │ │ │ │ ┌────────── 月(1–12 或 JAN-DEC) │ │ │ │ │ ┌────────── 星期几(0 - 6 或 SUNSAT)(例如,0 等同于 SUN) │ │ │ │ │ │ ┌────────── 年 │ │ │ │ │ │ │ * * * * * ? |
•0 0 0 表示午夜(秒、分钟、小时)。
•无法定义某值时,请使用 ?,因为该值已在其他字段(日或星期几)中定义。
•* 表示每一个字段(秒、分钟、小时、日、月、星期几、年)。
•SUN 表示星期天。
“日”和“星期几”的名称不区分大小写。例如,MON 等同于 mon,或者 JAN 等同于 jan。 |
特殊字符:
逗号 (,)
逗号用于分隔列表项。例如,在第 6 个字段(星期几)中使用“MON,WED,FRI”表示星期一、星期三和星期五。
连字符(-)
定义范围。例如,2012-2020 表示包括 2012 和 2020 在内以及它们之间的每一个年份。
通配符 (*)
用于选择某个字段内的所有可能值。例如,“分钟”字段中的 * 表示每分钟。通配符不能在“星期几”字段中使用。
问号 (?)
当选择特定日期时,您可以指定“日”也可以指定“星期几”。不能同时指定上述两者。如果指定“日”,则必须将 ? 用于“星期几”,反之亦然。例如,如果您希望在指定日引发触发器(假设,10 日),但并不在意是星期几,可将 10 置于“日”字段,将 ? 置于“星期几”字段。
哈希 (#)
用于指定当月的“第 n 日”。例如,“星期几”字段中的值“4#3”表示该月的第 3 个星期四(第 4 天 = 星期四,#3 = 该月的第 3 个星期四)。如果指定 #5,但没有该月第 5 个给定的星期几,则该月将不会引发触发器。
斜杠 (/)
表示范围增量。例如,第 2 个字段(分钟)中的 3-59/15 表示该小时的第 3 分钟,此后以 15 分钟为时间间隔。
最后 (L)
在“星期几”字段中使用时,它允许您指定结构,如给定月的最后一个星期五 (5L)。在“日”字段中,它指定该月的最后一天。例如,一月的第 31 天,二月的第 28 天(平年)。
工作日 (W)
W 字符可以在“日”字段中使用。该字符用于指定最接近给定日的工作日(即星期一到星期五)。例如,如果将 15W 指定为“日”字段的值,这表示最接近该月 15 日的工作日。因此,如果 15 日为星期六,则会在星期五(即 14 日)引发触发器。如果 15 日为星期天,则会在星期一(即 16 日)引发触发器。但是,如果您指定 1W 为“日”的值并且 1 日是星期六,则会在星期一(即 3 日)引发触发器,因为它不会跳过某月天数的边界。
还可以在“日”字段中结合使用 L 和 W 字符(即 LW),这表示该月的最后一个工作日。 |
随机 (R)
R 是一个特殊的 ESET PROTECT CRON 表达式字符,允许您指定随机生成的时刻。例如,R 0 0 * * ? * 表示在每天 00:00 的随机秒数 (0-59) 时刻引发触发器。
我们建议您使用随机生成的时刻以阻止所有 ESET Management 服务器代理同时连接到您的 ESET PROTECT服务器。 |
说明某些 CRON 表达式变化的真实示例:
CRON 表达式 |
含义 |
---|---|
0 0 12 * * ? * |
每天 12 pm(中午)引发。 |
R 0 0 * * ? * |
在每天 00:00 的随机秒数 (0-59) 时刻引发。 |
R R R 15W * ? * |
在每月 15 日的随机时刻(秒、分钟、小时)引发。如果 15 日为星期六,则会在星期五(即 14 日)引发触发器。如果 15 日为星期天,则会在星期一(即 16 日)引发触发器。 |
0 15 10 * * ? 2016 |
2016 年每天 10:15 am 引发。 |
0 * 14 * * ? * |
每天 2 pm 开始,2:59 pm 结束,在此期间每隔一分钟引发。 |
0 0/5 14 * * ? * |
每天 2 pm 开始,2:55 pm 结束,在此期间每隔 5 分钟引发。 |
0 0/5 14,18 * * ? * |
每天 2 pm 开始,2:55 pm 结束,以及 6 pm 开始,6:55 pm 结束,在这两段时间内每隔 5 分钟引发。 |
0 0-5 14 * * ? * |
每天 2 pm 开始,2:59 pm 结束,在此期间每隔一分钟引发。 |
0 10,44 14 ? 3 WED * |
三月份每个星期三的 2:10 pm 和 2:44 pm 引发。 |
0 15 10 ? * MON-FRI * |
每个工作日(即星期一、星期二、星期三、星期四和星期五)的 10:15 am 引发。 |
0 15 10 15 * ? * |
每个月 15 号的 10:15 am 引发。 |
0 15 10 ? * 5L * |
每个月最后一个星期五的 10:15 am 引发。 |
0 15 10 ? * 5L 2016-2020 |
2016 到 2020 年(包含这两年)每个月最后一个星期五的 10:15 am 引发。 |
0 15 10 ? * 5#3 * |
每个月第三个星期五的 10:15 am 引发。 |
0 0 * * * ? * |
在每天的每一小时引发。 |