Ubuntu下Jenkins任务调度的主要实现方法
这是Jenkins中最常用的任务调度方式,适用于传统的Freestyle项目。操作步骤如下:
0 10,16 * * *
表示每天上午10点和下午4点各执行一次)。若项目采用Pipeline as Code模式,可直接在Pipeline脚本中通过triggers
块定义定时调度。示例如下:
pipeline {
agent any
triggers {
cron('H 10 * * 1-5') // 每周一到周五上午10点执行(H表示随机分钟,避免并发冲突)
}
stages {
stage('Build') {
steps {
echo 'Building the project...'
}
}
}
}
这种方式将调度逻辑与代码绑定,适合需要版本控制的场景。
通过Ubuntu系统的crontab
工具,直接调用Jenkins的REST API触发任务。适用于需要与系统其他任务集成的场景。操作步骤如下:
crontab -e
。curl
命令触发Jenkins任务(替换your_job_name
和Jenkins服务器地址):0 2 * * * /usr/bin/curl -X POST http://localhost:8080/job/your_job_name/build --user username:api_token
其中,username
是Jenkins账号,api_token
需在Jenkins用户配置页面生成(用于身份验证)。在Pipeline中,可通过options
块或系统全局设置优化调度行为:
pipeline {
options {
quietPeriod(30) // 延迟30秒执行(单位:秒)
}
agent any
stages {
stage('Build') {
steps {
echo 'Starting build after quiet period...'
}
}
}
}
http://<server_ip>:8080/manage/configure
),找到“Quiet period”字段,设置全局默认延迟时间(适用于所有Pipeline任务)。* * * * *
0 * * * *
0 0 2 * *
0 3 * * 6
0 0 1,15 * *
注:Jenkins的Cron表达式支持6个字段(秒、分、小时、日期、月份、星期),其中“星期”字段的0
和7
均表示星期日;H
表示随机分钟(用于分散负载),*
表示任意值。