Debian 上配置 Jenkins 定时任务的两种方式
方式一 在 Jenkins 内配置定时构建
0 23 * * *H 23 * * *H/15 * * * *H */4 * * 1-50 23 * * 10 2 1 * *pipeline {
agent any
triggers { cron('H 23 * * *') }
stages { ... }
}
0 23 * * *)。方式二 在 Debian 的 crontab 中远程触发 Jenkins 任务
sudo systemctl status cron(未运行则 sudo systemctl start cron)。# 每天 01:00 触发
0 1 * * * /usr/bin/wget -q -O - "http://JENKINS_URL/job/JOB_NAME/build?token=YOUR_TOKEN" >/dev/null 2>&1
CRUMB=$(curl -u "USER:API_TOKEN" -s 'http://JENKINS_URL/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb)')
curl -u "USER:API_TOKEN" -H "$CRUMB" -X POST "http://JENKINS_URL/job/JOB_NAME/build?token=YOUR_TOKEN"
crontab -e 的定时行中(例如 0 1 * * *)。常见问题与排查
0 0 * * * 改为 H H * * * 或 H(0-29) 2 * * * 等“分散窗口”写法。H/3 在月末可能跨月失效,尽量将日期限制在 1–28 或使用脚本判断月末。