Jenkins在Ubuntu上的任务调度设置方法
确保Ubuntu系统已安装Jenkins并正常运行。若未安装,可通过以下命令快速部署:
sudo apt update
sudo apt install openjdk-11-jdk # 安装Java环境(Jenkins依赖)
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add - # 添加Jenkins仓库密钥
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list' # 添加Jenkins仓库
sudo apt update && sudo apt install jenkins # 安装Jenkins
sudo systemctl start jenkins && sudo systemctl enable jenkins # 启动服务并设置开机自启
这是最常用的图形化配置方式,适用于大多数场景。
http://<Ubuntu服务器IP>:8080,使用管理员账号登录。MyScheduledJob),选择“Freestyle project”类型,点击“OK”。H * * * *:每小时执行一次(H表示随机分钟,避免多任务同时触发);0 0 2 * *:每天凌晨2点整执行;H H(9-17)/2 * * 1-5:周一至周五,上午9点至下午5点之间,每隔2小时执行一次。若使用Pipeline脚本管理任务,可直接在脚本中定义定时规则。
MyPipelineJob),选择“Pipeline”类型,点击“OK”。triggers块,使用cron语法定义调度规则。示例如下:pipeline {
agent any // 指定执行节点(any表示任意可用节点)
triggers {
cron('H 10 * * 1-5') // 每周一至周五上午10点执行
}
stages {
stage('Build') {
steps {
echo 'Building the project...'
// 这里添加具体的构建步骤(如mvn compile、npm install等)
}
}
stage('Test') {
steps {
echo 'Running tests...'
// 这里添加测试步骤(如mvn test、npm test等)
}
}
}
}
若需要在Ubuntu系统层面调度Jenkins任务(而非通过Jenkins自身),可使用crontab命令。
crontab -e
0 3 * * * /usr/bin/curl -X POST http://localhost:8080/job/SystemBackup/build --user admin:your_api_token
0 3 * * *:每天凌晨3点执行;/usr/bin/curl:调用curl命令发送HTTP请求;http://localhost:8080/job/SystemBackup/build:Jenkins任务URL(替换为实际任务名称);--user admin:your_api_token:Jenkins账号认证(admin为用户名,your_api_token为API令牌,可在Jenkins用户设置中生成)。Ctrl+O保存文件,Ctrl+X退出编辑器。使用crontab -l命令查看当前用户的Cron任务列表,确认任务已添加。Cron表达式是任务调度的核心,由5或6个字段组成(Jenkins支持6字段格式,包含秒):
秒(可选) 分 时 日 月 星期
*:匹配任意值(如* * * * *表示每分钟执行);,:分隔多个值(如0,15,30,45 * * * *表示每15分钟执行一次);-:指定范围(如0 9-17 * * 1-5表示周一至周五9点至17点整点执行);/:指定间隔(如H/15 * * * *表示每隔15分钟执行一次);H:哈希值(随机分配时间,避免多任务同时触发,适用于分布式环境)。0 0 * * *:每天午夜0点执行;0 12 * * 6:每周六中午12点执行;H/30 * * * *:每隔30分钟执行一次(随机起始分钟)。sudo systemctl status jenkins # 检查Jenkins服务状态
sudo systemctl status cron # 检查系统Cron服务状态
Jenkins管理页面 → 用户 → 选择用户 → Configure → API Token)。通过以上方法,可在Ubuntu系统上灵活配置Jenkins任务的调度规则,满足不同场景的自动化需求。