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,則表示月中的第三個星期四 (day 4 = 星期四,#3 = 月中的第 3 個星期四)。如果指定 #5,但當月並沒有第 5 個給定的「星期幾」,則觸發在那個月將不會引發。
斜線 (/)
說明範圍的增量。例如,第 2 個欄位 (分鐘) 若為 3-59/15,則表示該小時的第三分鐘及其後的每 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 點引發。 |
R 0 0 * * ? * |
在每天的 00:00 引發,但秒數隨機指定 (0-59)。 |
R R R 15W * ? * |
在每個月 15 日的隨機時間 (秒、分、小時) 引發。如果 15 日是星期六,則觸發會在 14 日星期五引發。如果 15 日是星期日,則觸發會在 16 日星期一引發。 |
0 15 10 * * ? 2016 |
在 2016 年的每天上午 10:15 引發。 |
0 * 14 * * ? * |
在每天的下午 2 點到下午 2:59 之間每分鐘引發一次。 |
0 0/5 14 * * ? * |
在每天的下午 2 點到下午 2:55 之間每 5 分鐘引發一次。 |
0 0/5 14,18 * * ? * |
在每天的下午 2 點到下午 2:55 之間每 5 分鐘引發一次,並在每天的下午 6 點到下午 6:55 之間每 5 分鐘引發一次。 |
0 0-5 14 * * ? * |
在每天的下午 2 點到下午 2:59 之間每分鐘引發一次。 |
0 10,44 14 ? 3 WED * |
在三月的每個星期三上午 2:10 和下午 2:44 引發。 |
0 15 10 ? * MON-FRI * |
在每個平日 (星期一、星期二、星期三、星期四和星期五) 的上午 10:15 引發。 |
0 15 10 15 * ? * |
在每個月 15 日的上午 10:15 引發。 |
0 15 10 ? * 5L * |
在每個月最後一個星期五的上午 10:15 引發。 |
0 15 10 ? * 5L 2016-2020 |
在 2016 到 2020 年 (包含這兩年) 每個月的最後一個星期五的上午 10:15 引發。 |
0 15 10 ? * 5#3 * |
在每個月第三個星期五的上午 10:15 引發。 |
0 0 * * * ? * |
在每天的每個小時引發。 |