cron表达式

一,简介

       cron表达式是linux系统定时任务执行的一个标准规范。按照cron表达式语法,我们可以定制任务触发执行的时间点。

二,cron表达式语法

       顺序单位:   秒     分     时     日     月     周      年(一般省略不写)

       * :使用星号(*) 指示着这个单位域上包含所有合法的值。例如,在月份域上使用*意味着每个月都会触发这个 trigger。

     ?:只能用在日和周域上,但是不能在这两个域上同时使用。表示不关心这个域上是什么值。 这不同于星号,* 是指示着该域上的每一个合法值。如果日域上指定了值(包括*),则周域上只能是?;相反如果周域上指定了值(同样包括*),那日域上也只能是?;不然会出现语义含糊不清的情况。

     m/n :表示单位域上时间的递增(从m开始以n递增)。例如:0/15 * * * * ? 表示:每隔15秒触发执行一次任务。

     m-n :用于指定一个范围(m<n)。例如:0 45 3-8 * * ? 表示:每天的3,4,5,6,7,8点的45分整执行任务。

    ,      :用于表示一系列取值。例如: 0 0,15,30,45 * * *?表示:每小时的0,15,30,45分执行任务。

     L       :用在日域表示每个月的最后一天,用在周域表示每月的最后一个星期X。例如:0 0 23  ? * 5L 表示:5L表示每月的最后一个星期4;1L表示每月的最后一个星期天,其他依此类推。

     m#n  :表示表示月中的第n个周(m-1)。例如:0 0 23 ? * 6#3 表示:每月第三个周五的23点整执行定时任务。

     W      :表示有效工作日(周一到周五),只能出现在周域,系统将在离指定日期的最近的有效工作日触发事件。例如:在周域使用5W,如果5日是星期六,则将在最近的工作日:星期五,即4日触发。如果5日是星期天,则在6日(周一)触发;如果5日在星期一 到星期五中的一天,则就在5日触发。另外一点,W的最近寻找不会跨过月份。

      注意:所有的域中的值都有特定的合法范围,这些值的合法范围相当明显,例如:秒和分域的合法值为059,小时的合法范围是023日域中值的合法范围是031,但是需要注意不同的月份中的天数不同。月份的合法值是011。或者用字符串JAN,FEB MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV DEC来表示。周域可以用17来表示(1=星期日)或者用字符串SUN, MON, TUE, WED, THU, FRI SAT来表示.

三,应用举例

     "0 0 12 ? * WED"(每周三的中午1200) 等价于 0 0 12 ? * 4

     "0 15 10 ? * MON-FRI" 周一至周五的上午10:15触发

     "0 15 10 * * ? 2005"  2005年的每天上午10:15触发

     "0 15 10 L * ?" 每月最后一日的上午10:15触发

     "0 15 10 ? * 6L" 每月的最后一个星期五上午10:15触发

     "0 15 10 ? * 6#3" 每月的第三个星期五上午10:15触发

     "0 0/5 14,18 * * ?" 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发

     "0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最后一个星期五上午10:15触发

    

      

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值