在 Debian 系统上迁移 Jenkins 任务(Jobs)通常有几种方式,取决于你是同机迁移、跨机迁移,还是升级迁移。下面按常见场景说明。
在源 Jenkins 机器上:
确认 Jenkins 安装方式
dpkg -l | grep jenkins
或
systemctl status jenkins
找到 Jenkins 主目录 通常是:
/var/lib/jenkins
停止 Jenkins 服务(推荐)
sudo systemctl stop jenkins
Jenkins 每个任务都在:
/var/lib/jenkins/jobs/<job-name>
迁移整个 jobs 目录:
sudo tar czf jenkins-jobs.tar.gz -C /var/lib/jenkins jobs
scp jenkins-jobs.tar.gz user@new-server:/tmp/
sudo systemctl stop jenkins
sudo tar xzf /tmp/jenkins-jobs.tar.gz -C /var/lib/jenkins
sudo chown -R jenkins:jenkins /var/lib/jenkins/jobs
sudo systemctl start jenkins
✅ 适用于:相同 Jenkins 版本或相近版本
java -jar jenkins-cli.jar -s http://localhost:8080 get-job JOB_NAME > job.xml
java -jar jenkins-cli.jar -s http://localhost:8080 create-job JOB_NAME < job.xml
✅ 适用于:跨版本、跨平台 ❌ 不含构建历史
Manage Jenkins → Plugin Manager → ThinBackup
在目标 Jenkins:
ThinBackup → Restore
✅ 最安全、可自动化
权限问题
sudo chown -R jenkins:jenkins /var/lib/jenkins
插件不一致 目标机器需安装相同插件,否则任务可能报错。
凭据(Credentials)
jobs 只存引用,不存密码
→ 需单独迁移:
/var/lib/jenkins/credentials.xml
系统配置 如有全局工具(JDK、Maven):
/var/lib/jenkins/config.xml
jobs/
config.xml
credentials.xml
如果你愿意,可以告诉我:
我可以给你一条精确命令流程。