语法
分 | 时 | 日 | 月 | 周 |
0-59 | 0-23 | 1-31 | 1-12 | 0-7 |
表达式含义:
第一位:表示分钟,取值范围 0~59
第二位:表示小时,取值范围 0~23
第三位:表示每月第几天,取值范围 1~31
第四位:表示第几月,取值范围1~12
第五位:表示每周第几天,取值范围0~7,0和7代表的都是周日
特殊字符 | 代表的涵义 | 举例 |
* | 所有可能的值 | 【月】字段是星号,则表示每月都执行操作 |
, | 指定一个列表范围 | 【日】字段是1,2,5,表示1日、2日、5日执行操作 |
- | 可以用整数之间一个范围 | 【时】字段是2-6,表示2,3,4,5,6小时执行操作 |
/ | 时间的间隔频率 | 【时】字段是0-23/2,则表示每两小时执行一次 正斜线和星号可以一起使用,例如:*/10,如在【分】字段,则表示每十分钟执行一次 |
H | 分散负载 | 【分】字段是H,表达式H 7 * * * 表示7点-8点之间内执行操作,根据自身负载情况选择运行(可以理解为随机一个) |
0和7表示:周日
1-5表示:周一-周五,即工作日
6,7表示:周六和周日,即周末、非工作日
定时构建需求 | 表达式 | 备注 |
周一至周五,9点 12点 16点定时触发 | H 9,12,16 * * 1-5 | |
每隔5分钟构建一次 | H/5 * * * * | |
每隔30分钟 | H/30 * * * * | |
每隔75分钟 | H/15 H/2 * * * | 如果写成:H/15 H/1 * * * 表示:每小时15分执行构建 所以,要注意H/2 |
每隔90分钟 | H/30 H/2 * * * | |
每隔135分钟 | H/15 H/3 * * * | |
每隔145分钟 | H/35 H/3 * * * | 放到Jenkins上执行: 9:59:35-12:24:35 中间是2小时25分钟,即145分钟 |
每隔155分钟 | H/25 H/3 * * * | 放到Jenkins上执行: 9:44:39-12:19:39 中间是2小时35分钟,即155分钟 |
每隔150分钟执行一次 | H/30 H/3 * * * | |
每两小时构建一次 | H H/2 * * * | |
每天凌晨2点构建一次 | 0 2 * * * | 分钟是0,则每天的2:00进行构建 |
每天的6点执行,H表示不确定在哪一分钟上(分散负载) | H 6 * * * | |
每天中午12点定时构建一次 | H 12 * * * | |
在每小时的前半小时内,每10分钟执行一次 | H(0-29)/10 * * * * | |
每工作日,每2小时过去,从上午9:45开始,下午3:45结束,在第45分钟构建 | 45 H(9-15)/2 * * 1-5 | |
工作日,9点45-16点45,每2小时执行一次 | 45 H(9-15)/2 * * 1-5 | |
每两小时一次,每个工作日上午9点到下午4点(4:59) | H H(9-16)/2 * * 1-5 | 注意:这里的4点,如果理解为16:00则写成9-15,如果理解为16:59,则写成9-16 以下涉及到N点,均指N点59分 |
工作日,8点-16点之间,每隔2小时执行一次 | H H(8-16)/2 * * 1-5 | 例如放到Jenkins上执行: 14:43:59-16:43:59 |
每星期的星期一到星期五的10:45分执行 | 45 10 * * 1-5 | |
每天上午10点,下午2点,4点 | 0 10,14,16 * * * | |
朝九晚五工作时间内每半小时 | H/30 9-17 * * 1-5 | |
工作日1,3,5每一个半小时运行一次 | H/30 H/2 * * 1,3,5 | |
工作日,早8晚5,每隔120分钟执行一次 | H 8-17/2 * * 1-5 | |
周末早5点10分,到晚10点30分,每隔0.5小时执行一次 | H/30 5-22 * * 6,7 | |
工作日,早9晚6,每隔75分钟执行一次 | H/15 9-18/2 * * 1-5 | |
周末早6点10分,到晚11点30分,每隔135分钟执行一次 | H/15 6-23/3 * * 6,7 | |
1月-11月的1号和15号,执行一次(不固定在某个小时和某个分钟上) | H H 1,15 1-11 * | |
每天的6点10分执行 | 10 6 * * * | |
工作日8点执行 | 0 8 * * 1-5 |
定时构建需求 | 表达式 | 备注 |
每天的9点,17点,22点,一天构建3次 | H 9,17,22 * * * | |
周六及周日,每8点到12点,60分钟运行一次,12点到23点,30分钟运行一次 | H 8-12 * * 6,7 H/30 12-23 * * 6,7 | 写2行 |
每周一至周五,每天早8点至晚5点之间每隔125分钟构建一次 | H/5 H(8-17)/3 * * 1-5 | |
周六 1点至23点 每隔60分钟执行一次 | H 1-23 * * 6 | |
周日 2点至22点 每隔75分钟执行一次 | H/15 H(2-22)/2 * * 0 | 周日还可以用7表示,写成:H/15 H(2-22)/2 * * 7 |
工作日,早9晚6,每隔75分钟执行一次 | H/15 H(9-18)/2 * * 1-5 | |
周末早6点10分,到晚11点30分,每隔135分钟执行一次 | H/15 H(6-23)/3 * * 6,7 | |
工作日1,3,5每一个半小时运行一次,非工作日早6点到晚6点,每50分钟运行一次 | H/30 H/2 * * 1,3,5 H/50 H(6-18) * * 6-7 | 写2行 |
每一个半小时运行一次 | H/30 H/2 * * * | |
工作日早8晚7,工作日每隔150分钟执行一次 | H/30 H(8-19)/3 * * 1-5 | |
非工作日每两小时执行一次 | H H/2 * * 6,7 | |
早9晚6,工作日,每隔2小时执行脚本 | H H(9-18)/2 * * 1-5 | |
周末每隔3小时执行脚本 | H H/3 * * 6-7 | |
每隔1小时执行一次 | H * * * * | |
工作日每天早9晚6每隔2小时,和周末凌晨1点,3点,4点执行三次 | H H(9-18)/2 * * 1-5 H 1,3,4 * * 6,7 | |
工作日早8晚7,每隔150分钟执行一次 | H/30 H(8-19)/3 * * 1-5 |
Tips:如果有拿捏不准的,可以放到Jenkins上测试验证,如果遇到周末,而当天是工作日,可以把周末先改成*,验证完再改回6,7
同样,如果要验证12点的执行情况,而当前是14点,可以把12改成14进行验证,验证完再改回12