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

注意点

  • 秒级别若是使用了* ,将使脚本无限启动

相关文章
相关标签/搜索