Ubuntu下Jenkins任务调度的主要方法
这是Jenkins中最常用的任务调度方式,适用于Freestyle类型的项目。操作步骤如下:
0 10,16 * * *表示每天上午10点和下午4点各执行一次)。若使用Jenkins Pipeline(声明式或脚本式),可通过triggers块直接定义定时规则。示例如下:
pipeline {
agent any
triggers {
cron('H 10 * * 1-5') // 每周一到周五上午10点执行(H表示随机分钟,避免并发)
}
stages {
stage('Build') {
steps {
echo 'Building the project...'
}
}
}
}
cron语法与Jenkins内置调度一致,支持秒、分、小时、日期、月份、星期等字段(部分版本支持秒级精度)。若需调度远程Ubuntu服务器上的命令,可借助Jenkins的SSH插件(如“Publish Over SSH”)。配置步骤:
/usr/bin/apt update)。若需在特定时间点触发任务(如延迟1小时后执行),可通过Jenkins CLI或远程API设置延迟:
jenkins-cli.jar工具,命令示例:java -jar jenkins-cli.jar -s http://your_jenkins_url:8080/ build your_job_name -p delay=3600sec
其中delay参数指定延迟时间(单位:秒)。json参数: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"}]}'
适用于自动化脚本或CI/CD流水线的集成。安静期(Quiet Period)是指任务触发后,等待一定时间再开始执行的时间间隔,可用于避免频繁触发导致的资源竞争。配置方式:
options块中设置quietPeriod参数,例如:pipeline {
options {
quietPeriod(60) // 等待60秒后再执行
}
// 其他配置
}
Jenkins的Cron表达式由6个字段组成(秒、分、小时、日期、月份、星期),支持通配符(*)、逗号分隔(,)、斜杠间隔(/)等语法。常见示例如下:
* * * * * *30 * * * * *0 0 3 * * *0 0 9 * * 1-50 0 12 1,15 * *H/5 * * * * *(H表示随机分钟,避免多个任务同时触发)