活到老学到老之Jenkins build triggers中的定时schedule规则细讲
前一篇文章讲了Jenkins如何创建 Pipeline Job:https://blog.csdn.net/zhang_jiamin/article/details/150415815?spm=1011.2415.3001.5331
这次细讲一下定时这块儿的规则,因为后面遇到了几个不同的使用场景,正好总结一下。
在 Jenkins 的 Build Triggers -> Build periodically -> Schedule 里,定时任务的写法遵循的是 Cron 表达式,格式和 Linux 的 cron 一样:
MINUTE HOUR DOM MONTH DOW
- MINUTE:分钟(0–59)
- HOUR:小时(0–23)
- DOM:日期(1–31)
- MONTH:月份(1–12 或者 Jan-Dec)
- DOW:星期(0–7,0 和 7 都是周日,或者 Sun-Sat)
最后一位(DOW, day-of-week) 表示星期几:
- 0 或 7 → 星期天 (Sunday)
- 1 → 星期一 (Monday)
- 2 → 星期二 (Tuesday)
- 3 → 星期三 (Wednesday)
- 4 → 星期四 (Thursday)
- 5 → 星期五 (Friday)
- 6 → 星期六 (Saturday)
例如:
每周一到周五,每天 8:30 执行一次
30 8 * * 1-5
每周一到周五,每天 9:00 执行一次
0 9 * * 1-5
每周六和周日凌晨 2:00 执行
0 2 * * 0,6
另外:
写 1-5 表示周一到周五,没问题。
也可以写成 Mon-Fri,Jenkins 同样支持英文缩写。
例如:
30 8 * * Mon-Fri
日期如果是2号,
在 Jenkins / Linux cron 里,不需要写前导 0。
写 2 和 02 的效果完全一样,Jenkins 会把 02 当成 2。
例如:
2 推荐写法(更标准)
02 也能运行,但只是“多余的 0”。