Linux环境下Jenkins任务调度的常见方法
这是最基础的触发方式,无需配置自动化规则。操作步骤:登录Jenkins管理界面,选择需执行的任务,点击顶部导航栏的**“立即构建”**按钮即可手动启动任务。适用于临时测试、调试或人工控制的场景。
通过Jenkins的“构建触发器”配置定时规则,利用Cron表达式定义任务执行的时间频率。操作步骤:
分钟 小时 日期 月份 星期几,支持通配符*、逗号,、斜杠/等)。0 10,16 * * *:每天上午10点和下午4点各执行一次;H 10 * * 1-5:每周一至周五的上午10点执行(H表示随机分钟,避免并发冲突)。通过Webhook实现代码变更(如Git提交)时自动触发Jenkins任务,无需人工干预。需安装对应插件(如GitHub Plugin、GitLab Plugin),配置步骤:
http://<jenkins-server>/job/<job-name>/genericWebhookTrigger/invoke);Settings -> Webhooks -> Add webhook),填写Jenkins的Webhook URL,选择触发事件(如Push events)。通过Pipeline脚本(支持Groovy语法)定义定时任务,适合复杂流程(如多阶段构建、依赖管理)。操作步骤:
triggers块配置定时规则(与内置定时任务语法一致)。pipeline {
agent any
triggers {
cron('H 4 * * 1-5') // 每周一至周五凌晨4点执行
}
stages {
stage('Build') {
steps {
echo 'Building the project...'
}
}
stage('Test') {
steps {
echo 'Running tests...'
}
}
}
}
利用Jenkins的REST API实现程序化触发,适合与其他系统集成(如CI/CD流水线、监控报警系统)。操作步骤:
Manage Jenkins -> Manage Credentials,添加新的API Token(记下用户名和Token值);curl命令触发构建(示例):curl -X POST "http://<jenkins-server>:8080/job/<job-name>/build" \
--user <username>:<api-token>
若任务需要参数,可通过json参数传递(如{"parameter": [{"name":"env", "value":"prod"}]})。在Kubernetes集群中,通过Kubernetes插件动态创建Pod执行任务,实现资源弹性伸缩和高可用。操作步骤:
Manage Jenkins -> Manage Plugins);pipeline {
agent {
kubernetes {
label 'jenkins-agent' // Pod标签
yaml """
metadata:
labels:
app: jenkins-agent
spec:
containers:
- name: jnlp
image: jenkins/inbound-agent:latest
resources:
limits:
cpu: "500m"
memory: "512Mi"
volumeMounts:
- name: workspace
mountPath: /home/jenkins/agent
volumes:
- name: workspace
emptyDir: {}
"""
}
}
stages {
stage('Run in Kubernetes') {
steps {
sh 'echo "Running in a Kubernetes pod..."'
}
}
}
}
Jenkins管理界面 -> 系统日志或任务构建日志查看具体原因;