Linux环境下Jenkins任务调度的主要方法
这是最基础的执行方式,无需配置调度规则,适合临时或调试场景。操作步骤:登录Jenkins管理界面,找到目标任务,点击左侧导航栏的**“立即构建”**按钮即可触发任务执行。
Jenkins提供了可视化定时配置工具,通过Cron表达式定义任务执行时间,适用于需要规律性执行的场景(如每日构建、每小时测试)。
0 10 * * *表示每天上午10点执行,H/15 * * * *表示每隔15分钟执行一次)。借助Jenkins Remote Access API,可实现远程或自动化触发(如其他系统调用、脚本控制),适合集成到CI/CD流水线或自动化运维场景。
curl发送POST请求触发任务,命令格式为:curl -X POST http://${JENKINS_HOST}:${JENKINS_PORT}/job/${JOB_NAME}/build --user ${USER}:${PASSWORD}${JENKINS_HOST}为Jenkins服务器地址,${JOB_NAME}为目标任务名称,${USER}:${PASSWORD}为具有任务触发权限的账号凭证。Pipeline是Jenkins推荐的代码化持续集成工具,通过Groovy脚本定义任务流程,支持更灵活的调度配置(如动态调整执行时间、结合多阶段任务)。
triggers块中添加Cron表达式,如:pipeline {
agent any
triggers {
cron('H 9-17 * * 1-5') // 工作日9:00-17:00之间每小时执行一次
}
stages {
stage('Build') {
steps {
echo 'Building application...'
}
}
}
}
此外,Pipeline还支持通过input步骤实现人工确认触发,增强任务控制的灵活性。若Jenkins运行在Kubernetes集群中,可通过Kubernetes插件实现动态节点调度,根据任务负载自动创建或销毁执行节点(Pod),适合大规模分布式任务场景(如批量测试、容器化部署)。
agent块引用Pod模板,如: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"
requests:
cpu: "250m"
memory: "256Mi"
"""
}
}
stages {
stage('Deploy') {
steps {
sh 'kubectl apply -f deployment.yaml'
}
}
}
}
通过Linux系统的crontab工具,直接调用Jenkins API或命令行工具(如curl、jenkins-cli)执行任务,适合需要与系统级定时任务集成的场景(如备份、报表生成)。
crontab -e;0 3 * * * /usr/bin/curl -X POST http://jenkins.example.com/job/backup-job/build --user admin:password123;crontab -l验证任务是否添加成功。