Rundeck crontab格式

rundeck的crontab任務不一樣於Linux上邊的,它精確到秒級別。另外它還存在幾個關鍵的注意事項。express

官網連接:http://www.quartz-scheduler.org/documentation/quartz-1.x/tutorials/crontriggeride



定時任務教程

介紹

cron is a UNIX tool that has been around for a long time, so its scheduling capabilities are powerful and proven. TheCronTrigger class is based on the scheduling capabilities of cron.spa

CronTrigger uses "cron expressions", which are able to create firing schedules such as: "At 8:00am every Monday through Friday" or "At 1:30am every last Friday of the month".blog

Cron expressions are powerful, but can be pretty confusing. This tutorial aims to take some of the mystery out of creating a cron expression, giving users a resource which they can visit before having to ask in a forum or mailing list.教程

格式

一個cron表達式包含6或7個字段,用空格隔開(跟Linux的大體相同),字段(特殊字符)等格式以下crontab

字段名 強制性 容許值 容許的特殊字符
Seconds YES 0-59 , - * /
Minutes YES 0-59 , - * /
Hours YES 0-23 , - * /
Day of month YES 1-31 , - * ? / L W
Month YES 1-12 or JAN-DEC , - * /
Day of week YES 1-7 or SUN-SAT , - * ? / L #
Year NO empty, 1970-2099 , - * /

這樣的表達式很簡單,以下(其實不簡單,若是你曾被他折騰過): * * * * ? *圖片

or 複雜的表達式, 看這個: 0/5 14,18,3-39,52 * ? JAN,MAR,SEP MON-FRI 2002-2010get


特殊字符

  • * ("全部值") - 用來選擇一個字段中的全部值. 例如, "" 在分的字段中使用 *" 等價於 "每分鐘".  it

  • ? ("沒有具體的值") - 官方的例若有點**,我這裏來解釋下,在7個字段中,其中第4個和第六個是相剋的。第四個是(day of month ),第六個是(day of week),這個時候, "?"就是來跳過一個的做用。io

  • - - 用於指定範圍。 例如,在小時字段「10-12」表示「小時的10,11和12」。

  • , - 用於指定額外的值。 例如,「星期一,星期三,星期五」的意思是「星期一,星期三和星期五」。

  • / - 用來指定增量。 例如,「0/15」,在秒字段的意思是「秒0,15,30,和45」。在秒字段中「5/15」的意思是「秒5,20,35,和50」。 你也能夠這樣指定,打個比方,月的字段 「2/5」,這個意思就是說從月的2號起,+5天,繼續執行。

  • L ("last") - 2個字段中可使用它,而且意義不一樣。例如,在「月」字段中使用它,表示,這個月的最後一天,例如31號,你在2月確定無法指定,那麼這個就起了做用了。若是在「day-of-week」字段中使用它,表示"7"或者"SAT",也就是週六。另一個例子,若是你使用L跟在一個值的後邊,好比"6/L",那麼他表示這個這個月的最後一個週五。若是使用了"L",那麼就不要指定它的列表或者範圍。

  • W ("weekday") - 用於指定工做日(週一至週五)最近的某一天。舉個例子,若是你要指定「15W」做爲平常的一個月的字段中的值,意思是:「最近的工做日到本月15日。」因此,若是15日是星期六,觸發器將觸發上週五的第14天。若是15日是星期天,觸發器將觸發週一16日。若是15日是星期二,那麼它匹配上週二15號。可是,若是您指定「1W」做爲日 - 月之 - 的值,第一天是星期六,觸發器將觸發週一3號,由於它不會「跳」過了一個月的界限。注意:他只能是指定的單一的天,而不是多個。

'L'和'W'字符,也能夠在一個月中相結合,以產生'LW',它轉換爲*「每個月最後一個工做日」*。
  • # - 用於指定月份的第幾天。 例如在(day of week)字段中寫入"6#3",那麼它的意思是這個月的第三個星期的星期五。若是你只寫了"#5",那麼沒有第五個周的月不會被匹配。


例子

Here are some full examples:

wKioL1Nu7SXQ06XqAALi2nn-8yo170.jpg

注意點

  • 秒級別若是使用了* ,將使腳本無限啓動

相關文章
相關標籤/搜索