jenkins cron

  1. Jenkins cron syntax

  Jenkins Cron 语法遵循Cron实用程序的语法(略有不同)具体来说,每行包含由TAB或SPACE分隔的5个字段(分时日月周):

分钟(Minute) 小时(Hour) 日(Day of Month) 月(Month) 周(Day of Week)
0-59 0-23 1-31(取决于具体月份) 1-12 0-7(0和7是星期天)

  要为一个字段指定多个值,可以使用以下运算符。按优先顺序排列:

  • * 指定所有有效值
  • M-N 指定一个范围值
  • M-N/X 或 */X 以 X 为间隔数在M-N(指定范围)或*/X(整个范围)每次递增
  • A,B,…​,Z 枚举多值

  为了允许定期调度的任务在系统上产生均衡负载,应尽可能使用符号H(用于“hash”)。例如,使用 0 0 * * * (每日凌晨执行)每日多个job同时执行将引起很大的高峰。而使用 H H * * * 仍然会每天执行一次。但是不会同时执行,可以更好的利用有限的资源。使用  H  可以表示一个范围。例如, H H(0-7) * * *  指每日上午12:00(午夜)至上午7:59之间的某段时间执行。H 符号可以看作是一个范围内的随机值,但它实际上是 job 名称的 hash,而不是随机函数,因此对于任何给定的项目,该值都保持稳定。

  此外还支持@yearly,@annually,@monthly,@weekly,@daily,@midnight,@hourly 作为便利的别名,使用 hash system 保持自动平衡,@hourly等效于 H * * * * 表示在一个小时的任意时间, @midnight 表示在凌晨12:00到凌晨2:59之间。

  2. Jenkins cron syntax examples:

  1. triggers{ cron('H/15 * * * *') }(每15分钟执行一次)
  2. triggers{ cron('H(0-29)/10 * * * *') }(每小时的前30分钟内每10分钟执行一次)
  3. triggers{ cron('45 9-16/2 * * 1-5') }(从上午9:45开始每小时45分钟一次,每个工作日下午3:45结束)
  4. triggers{ cron('H H(9-16)/2 * * 1-5') }(每个工作日上午9点至下午5点之间每两个小时一次)
  5. triggers{ cron('H H 1,15 1-11 *') }(除了12月之外,每个月的1日和15日每天一次)
上一篇:fs项目---->cron框架的学习(一)


下一篇:Linux - cron - 基础