如何通过API远程更新Jenkins任务的Cron调度表达式(无需提交完整XML)
远程修改Jenkins任务Cron调度的简便方法
你提到的修改XML提交的方法确实可行,但还有几种更简便的方式,不用处理完整的配置文件:
1. Jenkins CLI 命令行方式
直接通过Jenkins CLI执行命令修改,支持参数化传入Cron表达式:
# 先下载jenkins-cli.jar,或者用SSH连接 java -jar jenkins-cli.jar -s http://你的Jenkins地址/ set-build-trigger 任务名称 timer "你的Cron表达式"
如果用SSH方式(需要Jenkins开启SSH服务),可以直接执行:
ssh jenkins@你的Jenkins地址 set-build-trigger 任务名称 timer "你的Cron表达式"
2. Jenkins REST API(推荐自动化场景)
不用替换完整的XML,通过PATCH请求仅更新调度配置部分:
curl -X PATCH -u 用户名:API令牌 \ http://你的Jenkins地址/job/任务名称/config.xml \ -H "Content-Type: application/xml" \ --data '<triggers><hudson.triggers.TimerTrigger><spec>你的Cron表达式</spec></hudson.triggers.TimerTrigger></triggers>'
这种方式只需要传递调度相关的XML片段,比全量替换更简洁。
3. Pipeline任务专属方法
如果是Pipeline类型的任务,可以在Jenkinsfile中动态接收参数并设置调度:
properties([ pipelineTriggers([cron(params.CRON_EXPRESSION)]) ]) // 后续Pipeline逻辑...
之后通过远程触发该Pipeline时传入CRON_EXPRESSION参数,即可自动更新任务的调度配置。
你之前提到的XML片段示例:
<triggers> <hudson.triggers.TimerTrigger> <spec>05 01 * * *</spec> </hudson.triggers.TimerTrigger> </triggers>
Jenkins任务调度配置界面:
内容的提问来源于stack exchange,提问作者Sameera De Silva
相关产品推荐
相关产品推荐

