下面给你一套在 CentOS 上迁移 Jenkins 的完整实战方案,适用于 同机迁移、跨服务器迁移、或系统重装后恢复 的常见场景。
systemctl status jenkins
# 或
ps -ef | grep jenkins
一般默认:
/var/lib/jenkins
rpm -qa | grep jenkins
⚠️ 强烈建议:迁移前后 Jenkins 版本保持一致
| 场景 | 推荐方式 |
|---|---|
| 完整迁移(最常用) | 拷贝整个 Jenkins 主目录 |
| 只迁移 Job | 拷贝 jobs 目录 |
| 只迁移插件 | 拷贝 plugins 目录 |
| 跨系统(CentOS → CentOS) | 完整目录迁移 |
✅ 最稳妥:完整迁移 /var/lib/jenkins
systemctl stop jenkins
cd /var/lib
tar -czvf jenkins-backup.tar.gz jenkins
或仅同步:
rsync -avz /var/lib/jenkins/ root@new-server:/var/lib/jenkins/
scp jenkins-backup.tar.gz root@new-server:/tmp/
yum install -y java-11-openjdk
wget -O /etc/yum.repos.d/jenkins.repo \
https://pkg.jenkins.io/redhat-stable/jenkins.repo
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum install -y jenkins
⚠️ 不要启动 Jenkins
systemctl stop jenkins
rm -rf /var/lib/jenkins
tar -xzvf /tmp/jenkins-backup.tar.gz -C /var/lib/
chown -R jenkins:jenkins /var/lib/jenkins
vim /etc/sysconfig/jenkins
JENKINS_PORT="8080"
which java
vim /etc/sysconfig/jenkins
JENKINS_JAVA_CMD=/usr/bin/java
systemctl daemon-reload
systemctl start jenkins
systemctl enable jenkins
http://新服务器IP:8080journalctl -u jenkins -xe
常见原因:
✅ 修复:
chown -R jenkins:jenkins /var/lib/jenkins
jenkins-plugin-cli --plugins plugin-name
或直接拷贝:
/var/lib/jenkins/plugins
确认以下目录存在:
/var/lib/jenkins/secrets
/var/lib/jenkins/.ssh
scp -r /var/lib/jenkins/jobs new-server:/var/lib/jenkins/
chown -R jenkins:jenkins /var/lib/jenkins/jobs
⚠️ 会丢失:
✅ Jenkins 版本一致
✅ Java 版本一致
✅ 备份完整
✅ 权限正确
✅ 端口未冲突
✅ 防火墙放行
你可以直接告诉我:
我可以给你 针对你环境的迁移命令清单 ✅