Ubuntu Jenkins任务调度方法
导读:Ubuntu下Jenkins任务调度的主要方法 1. 使用Jenkins内置“Build periodically”功能(Freestyle项目) 这是Jenkins中最常用的任务调度方式,适用于Freestyle类型的项目。操作步骤如下:...
Ubuntu下Jenkins任务调度的主要方法
1. 使用Jenkins内置“Build periodically”功能(Freestyle项目)
这是Jenkins中最常用的任务调度方式,适用于Freestyle类型的项目。操作步骤如下:
- 登录Jenkins控制面板,进入目标任务的配置页面(点击任务名称→左侧“Configure”)。
- 滚动到“Build Triggers”(构建触发器)部分,勾选“Build periodically”(定期构建)。
- 在“Schedule”(调度)输入框中,使用Cron表达式定义执行时间(如
0 10,16 * * *
表示每天上午10点和下午4点各执行一次)。 - 点击“Save”保存配置,Jenkins会根据Cron表达式自动触发任务。
2. 在Pipeline项目中配置定时调度
若使用Jenkins Pipeline(声明式或脚本式),可通过triggers
块直接定义定时规则。示例如下:
pipeline {
agent any
triggers {
cron('H 10 * * 1-5') // 每周一到周五上午10点执行(H表示随机分钟,避免并发)
}
stages {
stage('Build') {
steps {
echo 'Building the project...'
}
}
}
}
cron
语法与Jenkins内置调度一致,支持秒、分、小时、日期、月份、星期等字段(部分版本支持秒级精度)。
3. 通过SSH插件执行远程定时任务
若需调度远程Ubuntu服务器上的命令,可借助Jenkins的SSH插件(如“Publish Over SSH”)。配置步骤:
- 安装SSH插件:进入Jenkins“Manage Jenkins”→“Manage Plugins”,搜索“SSH”并安装。
- 配置SSH服务器:在“Manage Jenkins”→“Manage Credentials”中添加远程服务器的SSH私钥或密码,在“Manage Jenkins”→“Configure System”→“SSH Servers”中填写服务器IP、用户名、凭据等信息。
- 添加构建步骤:在任务配置页面选择“Execute shell”或“Send files or execute commands over SSH”,输入远程命令(如
/usr/bin/apt update
)。 - 结合定时触发器(如“Build periodically”),实现远程任务的定时执行。
4. 使用Jenkins CLI或API设置延迟构建
若需在特定时间点触发任务(如延迟1小时后执行),可通过Jenkins CLI或远程API设置延迟:
- CLI方式:使用
jenkins-cli.jar
工具,命令示例:
其中java -jar jenkins-cli.jar -s http://your_jenkins_url:8080/ build your_job_name -p delay=3600sec
delay
参数指定延迟时间(单位:秒)。 - API方式:通过HTTP POST请求触发构建,携带
json
参数:
适用于自动化脚本或CI/CD流水线的集成。curl -X POST http://your_jenkins_url:8080/job/your_job_name/build \ --user username:api_token \ --data-urlencode json='{ "parameter": [{ "name":"delay", "value":"3600sec"} ]} '
5. 配置Jenkins全局或任务级安静期
安静期(Quiet Period)是指任务触发后,等待一定时间再开始执行的时间间隔,可用于避免频繁触发导致的资源竞争。配置方式:
- 任务级安静期:在Pipeline项目的
options
块中设置quietPeriod
参数,例如:pipeline { options { quietPeriod(60) // 等待60秒后再执行 } // 其他配置 }
- 全局安静期:进入Jenkins“Manage Jenkins”→“Configure System”,找到“Quiet period”输入框,填写默认等待时间(单位:秒),保存后所有任务生效(若任务单独设置了安静期,则以任务级为准)。
Cron表达式常见示例
Jenkins的Cron表达式由6个字段组成(秒、分、小时、日期、月份、星期),支持通配符(*
)、逗号分隔(,
)、斜杠间隔(/
)等语法。常见示例如下:
- 每分钟执行一次:
* * * * * *
- 每小时的第30分钟执行:
30 * * * * *
- 每天凌晨3点执行:
0 0 3 * * *
- 每周一至周五上午9点执行:
0 0 9 * * 1-5
- 每月1号和15号中午12点执行:
0 0 12 1,15 * *
- 每5分钟执行一次:
H/5 * * * * *
(H
表示随机分钟,避免多个任务同时触发)
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu Jenkins任务调度方法
本文地址: https://pptw.com/jishu/719810.html