Jenkins在Ubuntu上的任务调度方法
这是Jenkins中最常用的任务调度方式,无需依赖系统级Cron服务,直接在任务配置中完成设置。
http://<server_ip>:8080),使用管理员账号登录。秒 分 时 日 月 星期,共6个字段,支持通配符*、范围1-5、步长/15等)。常见示例:
0 0 1 * * *:每天凌晨1点整执行;0 * * * * *:每小时的第0分钟执行(即每小时一次);H H(9-17)/2 * * 1-5:周一至周五,上午9点至下午5点之间,每隔2小时执行一次(H表示随机分钟/小时,避免任务集中触发);0 10,16 * * *:每天上午10点和下午4点各执行一次。若项目使用Pipeline(流水线)模式,可直接在Pipeline脚本中通过triggers块定义定时调度,适用于需要版本控制的流水线配置。
pipeline {
agent any // 指定执行节点(any表示任意可用节点)
triggers {
cron('H 10 * * 1-5') // 每周一到周五上午10点执行(H表示随机分钟,减少并发冲突)
}
stages {
stage('Build') {
steps {
echo 'Building the project...' // 构建步骤(可根据需求替换为实际命令)
}
}
stage('Test') {
steps {
echo 'Running tests...' // 测试步骤
}
}
}
}
若需要将Jenkins任务纳入Ubuntu系统的全局任务调度(如与其他系统任务统一管理),可通过系统级Cron服务实现。
sudo apt update
sudo apt install cron
sudo systemctl start cron
sudo systemctl enable cron
crontab -e命令编辑当前用户的Cron任务(建议使用root用户,确保有权限访问Jenkins),添加以下行(以每天凌晨2点执行your_job_name任务为例):0 2 * * * /usr/bin/curl -X POST http://localhost:8080/job/your_job_name/build
0 2 * * *:Cron表达式,表示每天凌晨2点;/usr/bin/curl:用于发送HTTP请求的工具(需提前安装,sudo apt install curl);http://localhost:8080/job/your_job_name/build:Jenkins任务的构建URL(将localhost替换为服务器IP,your_job_name替换为目标任务名称)。Ctrl+O→Enter→Ctrl+X),使用crontab -l命令查看当前用户的Cron任务列表,确认任务已添加。