阅读量:3
CentOS环境下Jenkins任务调度实践
一 内置定时构建 Build periodically
- 进入任务的配置页,勾选构建触发器中的Build periodically,填写 Jenkins Cron 表达式。Jenkins Cron 使用 5 个字段:MINUTE HOUR DOM MONTH DOW,支持特殊字符:H(哈希,做负载均衡)、/(步长)、-(范围)、,(枚举)。为避免多实例同时触发,建议用 H,如:**H/15 * * * ***(每 15 分钟,时间点随机分布)。示例:每天 02:00 执行:**0 2 * * ***;工作日 09:45–15:45 每 2 小时执行:*H /2 * * 1-5。界面右侧通常有 “?” 帮助可查看规则。
二 Pipeline 中定义调度
- 在 Jenkinsfile 的 triggers 块内使用 cron,语法与界面一致;若同时在界面与 Pipeline 中配置,通常以 Pipeline 为准。示例:
pipeline {
agent any
triggers {
cron('H 23 * * *') // 每天 23:00
pollSCM('H/5 * * * *') // 每 5 分钟检查 SCM 变更并触发
}
stages {
stage('Build') {
steps { echo 'Building...' }
}
}
}
- 说明:pollSCM 适合“代码变更即构建”的场景,表达式同样支持 H 做抖动。
三 使用系统 Cron 调用 Jenkins API 触发
- 适合外部编排或与现有系统定时对齐。步骤:
- 在 Jenkins 生成 API Token(用户头像 → Configure → API Token → 生成新 Token)。
- 在 CentOS 执行
crontab -e添加任务,例如每天 02:00 触发:
0 2 * * * /usr/bin/curl -X POST \
--user 'USERNAME:API_TOKEN' \
'http://JENKINS_URL/job/JOB_NAME/build'
如需传参(参数化构建):
0 2 * * * /usr/bin/curl -X POST \
--user 'USERNAME:API_TOKEN' \
--data-urlencode 'json={"parameter":[{"name":"delay","value":"300sec"}]}' \
'http://JENKINS_URL/job/JOB_NAME/build'
- 可用
crontab -l查看、验证条目是否生效。
四 关键注意事项与排错
- 时区一致性:确保 Jenkins 系统时区与业务时区一致,避免定时偏移。
- 避免重叠:对耗时任务,在任务配置中勾选Do not allow concurrent builds,或在 Jenkinsfile 使用 lock 等策略。
- 表达式校验:优先使用 H 做抖动,降低“雪崩效应”;界面右侧 “?” 可帮助校验。
- 权限与安全:API 方式建议使用专用账号 + Token,并限制来源 IP;避免在脚本中明文存放凭据。
- 日志与验证:先在命令行手动执行
curl验证触发是否成功,再交由 cron;在 Jenkins 构建历史与 系统日志排查未触发原因。
以上就是关于“CentOS环境下Jenkins如何进行任务调度”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm