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
驗證任務是否添加成功。