温馨提示×

Jenkins在Ubuntu上如何任务调度

小樊
40
2025-10-24 21:51:06
栏目: 智能运维

Jenkins在Ubuntu上的任务调度方法

一、通过Jenkins内置“Build periodically”功能调度(推荐)

这是Jenkins中最常用的任务调度方式,无需依赖系统级Cron服务,直接在任务配置中完成设置。

  1. 登录Jenkins:通过浏览器访问Ubuntu服务器上的Jenkins实例(如http://<server_ip>:8080),使用管理员账号登录。
  2. 进入任务配置:在Jenkins首页点击目标任务(Job)进入详情页,左侧菜单选择Configure(配置)。
  3. 开启定时构建:向下滚动到Build Triggers(构建触发器)部分,勾选Build periodically(定期构建)。
  4. 设置Cron表达式:在“Schedule”输入框中输入符合Jenkins规范的Cron表达式(格式:秒 分 时 日 月 星期,共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点各执行一次。
  5. 保存配置:点击页面底部的Save按钮,完成调度设置。

二、通过Jenkins Pipeline定义定时任务

若项目使用Pipeline(流水线)模式,可直接在Pipeline脚本中通过triggers块定义定时调度,适用于需要版本控制的流水线配置。

  1. 创建/编辑Pipeline任务:在Jenkins首页点击New Item,输入任务名称,选择Pipeline类型,点击OK
  2. 编写Pipeline脚本:在任务配置页面的Pipeline section,选择Pipeline script(或Pipeline script from SCM,若脚本存放在代码仓库),输入以下示例脚本:
    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...'  // 测试步骤
                }
            }
        }
    }
    
  3. 保存并运行:点击Save按钮,Pipeline将按照定义的Cron表达式自动触发执行。

三、通过系统级Cron服务调用Jenkins任务

若需要将Jenkins任务纳入Ubuntu系统的全局任务调度(如与其他系统任务统一管理),可通过系统级Cron服务实现。

  1. 安装并启动Cron服务(若未安装):
    sudo apt update
    sudo apt install cron
    sudo systemctl start cron
    sudo systemctl enable cron
    
  2. 编辑系统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替换为目标任务名称)。
  3. 保存并验证:保存Cron表(Ctrl+OEnterCtrl+X),使用crontab -l命令查看当前用户的Cron任务列表,确认任务已添加。

四、注意事项

  • Cron表达式格式:Jenkins的Cron表达式为6个字段(秒、分、时、日、月、星期),而Ubuntu系统Cron为5个字段(缺少秒),使用时需注意区分;
  • 权限问题:确保Cron作业或系统Cron服务的执行用户有权限访问Jenkins服务器及目标任务;
  • 日志监控:通过Jenkins任务页面的Build History(构建历史)查看调度执行结果,若任务未触发,可检查Cron表达式语法、Jenkins服务状态及网络连接。

0