温馨提示×

centos中jenkins如何备份

小樊
41
2026-08-30 19:59:23
栏目: 智能运维

CentOS 上备份 Jenkins,通常要备份 Jenkins 主目录(JENKINS_HOME) 以及(可选)系统配置、插件、任务、构建历史 等。下面给你一套常用且安全的备份方案


一、确认 Jenkins 主目录(JENKINS_HOME)

默认路径一般是:

/var/lib/jenkins

可以通过以下方式确认:

systemctl status jenkins
# 或
ps -ef | grep jenkins

或查看配置文件:

cat /etc/sysconfig/jenkins | grep JENKINS_HOME

二、停止 Jenkins(推荐,避免数据不一致)

systemctl stop jenkins

✅ 如果是生产环境短暂停机不可接受,也可以不停机备份,但风险略高。


三、核心备份目录(必须)

最重要的目录

/var/lib/jenkins

需要重点备份的内容:

目录 / 文件 说明
jobs/ 所有任务(Job)配置与构建历史
plugins/ 已安装插件
config.xml Jenkins 全局配置
users/ 用户信息与权限
secrets/ 凭据、密钥(非常重要)
nodes/ 节点配置
workspace/ 工作空间(可选,通常很大)

四、使用 tar 打包备份(推荐)

1️⃣ 创建备份目录

mkdir -p /data/backup/jenkins

2️⃣ 打包 Jenkins 主目录

tar -czvf /data/backup/jenkins/jenkins_backup_$(date +%F).tar.gz \
    -C /var/lib/jenkins .

✅ 备份完成后可以启动 Jenkins:

systemctl start jenkins

五、只备份关键数据(推荐生产环境)

tar -czvf /data/backup/jenkins/jenkins_$(date +%F).tar.gz \
    /var/lib/jenkins/{config.xml,jobs,plugins,users,secrets,nodes}

❌ 不建议备份 workspacebuilds(可选)


六、使用 rsync 增量备份(推荐)

第一次全量

rsync -avz /var/lib/jenkins/ /data/backup/jenkins/latest/

后续增量

rsync -avz --delete /var/lib/jenkins/ /data/backup/jenkins/latest/

✅ 适合定时备份
✅ 速度快
✅ 可配合 cron


七、定时自动备份(cron)

crontab -e

示例(每天凌晨 2 点):

0 2 * * * tar -czvf /data/backup/jenkins/jenkins_$(date +\%F).tar.gz -C /var/lib/jenkins .

八、备份 Jenkins 系统服务配置(可选)

tar -czvf /data/backup/jenkins/jenkins_system_$(date +%F).tar.gz \
    /etc/sysconfig/jenkins \
    /usr/lib/systemd/system/jenkins.service

九、恢复 Jenkins(灾难恢复)

1️⃣ 停止 Jenkins

systemctl stop jenkins

2️⃣ 清空旧数据(谨慎)

mv /var/lib/jenkins /var/lib/jenkins_old
mkdir /var/lib/jenkins

3️⃣ 解压备份

tar -xzvf jenkins_backup_2026-01-15.tar.gz -C /var/lib/jenkins

4️⃣ 授权

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

5️⃣ 启动 Jenkins

systemctl start jenkins

十、官方推荐插件(可选)

ThinBackup(最常用)

安装方式:

  1. Jenkins → Manage Jenkins → Plugins
  2. 搜索 ThinBackup
  3. 安装并重启

功能:

✅ 自动备份
✅ 自动清理旧备份
✅ 支持全量 / 增量


十一、备份策略建议(最佳实践)

✅ 每天全量或增量备份
✅ 保留 7~30 天备份
✅ 备份文件存放到 远程服务器 / NAS / OSS
✅ 定期做 恢复演练


如果你愿意,我可以帮你:

  • ✅ 写一个 自动备份 + 远程同步脚本
  • ✅ 对比 ThinBackup vs 手动备份
  • ✅ 针对 Docker / Kubernetes Jenkins 给出备份方案

0