博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Rundeck crontab格式
阅读量:6856 次
发布时间:2019-06-26

本文共 2179 字,大约阅读时间需要 7 分钟。

rundeck的crontab任务不同于Linux上边的,它精确到秒级别。另外它还存在几个关键的注意事项。

官网链接:


定时任务教程

介绍

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.

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".

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的大致相同),字段(特殊字符)等格式如下

字段名 强制性 允许值 允许的特殊字符
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-2010

特殊字符

  • * ("所有值") - 用来选择一个字段中的所有值. 例如, "" 在分的字段中使用 *" 等价于 "每分钟".  

  • ? ("没有具体的值") - 官方的例如有点**,我这里来解释下,在7个字段中,其中第4个和第六个是相克的。第四个是(day of month ),第六个是(day of week),这个时候, "?"就是来跳过一个的作用。

  • - - 用于指定范围。 例如,在小时字段“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:

注意点

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

本文转自 陈延宗 51CTO博客,原文链接:http://blog.51cto.com/407711169/1409388,如需转载请自行联系原作者
你可能感兴趣的文章
div盒子水平垂直居中方法
查看>>
VR视频创作,想说爱你不容易
查看>>
笨办法学 Python · 续 练习 23:三叉搜索树
查看>>
可穿戴设备不能急于戴上“智能”的高帽子
查看>>
扒一扒政府的专用黑客组织ZooPark
查看>>
Ubuntu下Deb软件包相关安装与卸载
查看>>
互联网转型需要微服务架构
查看>>
Airbus Safran Launchers:选择西门子彻底改革产品生命周期流程
查看>>
文本数据的分分合合
查看>>
无损音乐知识收集2(转)
查看>>
Java几种常见的四舍五入的方法
查看>>
vim 工具(一)
查看>>
MySQL常用命令
查看>>
zabbix snmp监控
查看>>
MySQL单实例重置密码的两种方法
查看>>
一段典型的PHP程序都包含那些内容呢?
查看>>
python paramiko模块讲解
查看>>
Windows Phone 7 数据绑定的简单介绍
查看>>
每天一个知识点linux(二)关机重启命令
查看>>
以程序的方式操纵NTFS的文件权限(下)
查看>>