温馨提示×

怎么备份CentOS的Jenkins

小樊
35
2026-07-21 00:38:24
栏目: 智能运维

备份 CentOS 上的 Jenkins 主要包括 配置文件、任务(Job)数据、插件和用户数据 等。下面给你一套通用、可靠、可恢复的备份方案。


一、确认 Jenkins 安装方式

先确认 Jenkins 是哪种方式安装的:

rpm -qa | grep jenkins

常见情况:

  • RPM/YUM 安装/var/lib/jenkins
  • Docker 安装:容器卷或挂载目录
  • War 包运行:自定义目录

下面以 最常见的 RPM/YUM 安装 为例。


二、Jenkins 核心目录(重点备份)

Jenkins 默认主目录:

/var/lib/jenkins

重要子目录说明:

目录 作用
jobs/ 所有 Job 配置
config.xml Jenkins 全局配置
plugins/ 插件
users/ 用户数据
secrets/ 密钥、凭证
nodes/ 节点配置
workspace/ 工作空间(一般可不备份)

三、推荐备份方案(最稳妥)

✅ 方案一:全量备份 Jenkins 主目录(推荐)

1️⃣ 停止 Jenkins(防止数据不一致)

systemctl stop jenkins

2️⃣ 打包 Jenkins 主目录

cd /var/lib
tar -czvf jenkins_backup_$(date +%F).tar.gz jenkins

3️⃣ 启动 Jenkins

systemctl start jenkins

✅ 备份文件示例:

jenkins_backup_2026-01-21.tar.gz

四、只备份关键数据(轻量方案)

如果你不想全量备份:

tar -czvf jenkins_important_backup.tar.gz \
/var/lib/jenkins/config.xml \
/var/lib/jenkins/jobs \
/var/lib/jenkins/plugins \
/var/lib/jenkins/users \
/var/lib/jenkins/secrets

五、备份 Jenkins 系统服务(可选)

cp /etc/sysconfig/jenkins /backup/jenkins/sysconfig_jenkins.bak
cp /usr/lib/systemd/system/jenkins.service /backup/jenkins/

六、备份 Jenkins 插件列表(可迁移用)

jenkins-plugin-cli --list > plugins.txt

或手动记录:

ls /var/lib/jenkins/plugins > plugins.txt

七、恢复 Jenkins(灾难恢复)

1️⃣ 停止 Jenkins

systemctl stop jenkins

2️⃣ 恢复数据

rm -rf /var/lib/jenkins
tar -xzvf jenkins_backup_2026-01-21.tar.gz -C /var/lib/

3️⃣ 权限修复(非常重要)

chown -R jenkins:jenkins /var/lib/jenkins

4️⃣ 启动 Jenkins

systemctl start jenkins

八、自动化备份(推荐生产环境)

定时备份脚本示例

#!/bin/bash
BACKUP_DIR=/data/backup/jenkins
mkdir -p $BACKUP_DIR

systemctl stop jenkins
tar -czvf $BACKUP_DIR/jenkins_$(date +%F).tar.gz /var/lib/jenkins
systemctl start jenkins

# 保留 7 天
find $BACKUP_DIR -mtime +7 -name "*.tar.gz" -delete

加入 crontab:

crontab -e
0 2 * * * /opt/scripts/backup_jenkins.sh

九、Docker 安装的 Jenkins 备份(补充)

docker cp jenkins_container:/var/jenkins_home /backup/jenkins_home

或备份挂载卷:

tar -czvf jenkins_docker_backup.tar.gz /var/jenkins_home

十、总结(最佳实践)

必须备份

  • /var/lib/jenkins
  • secrets/(凭证)
  • plugins/

建议

  • 定期备份
  • 备份前停止 Jenkins
  • 备份文件异地存储

如果你愿意,我可以:

  • ✅ 帮你写 完整备份脚本
  • ✅ 根据你的 Jenkins 版本定制方案
  • ✅ 指导 跨服务器迁移 Jenkins

直接告诉我你的 Jenkins 是 RPM / Docker / Kubernetes 哪种即可。

0