Jenkins Linux版备份与恢复实操指南
一 核心要点与准备
- 备份的核心是 JENKINS_HOME 目录,Linux 常见路径为 /var/lib/jenkins。该目录包含:config.xml、jobs、plugins、users、secrets、workspace、builds 等关键数据。可在 Manage Jenkins → System Information 查看实际路径。为减少不一致,建议在备份前将实例置于 Quiet Mode(安静模式)或短暂停止服务。恢复时优先保证 Jenkins 版本一致,避免插件/配置不兼容。
二 手动备份与恢复步骤
- 备份
- 建议先进入维护窗口,执行:sudo systemctl stop jenkins(或使用 ThinBackup 的安静模式)。
- 打包主目录:sudo tar -czvf jenkins_backup_$(date +%F).tar.gz -C /var/lib/jenkins .
- 同时备份系统级配置(不同发行版路径不同):
- RHEL/CentOS:/etc/sysconfig/jenkins
- Debian/Ubuntu:/etc/default/jenkins
- 将备份文件传输到异地/对象存储,并保留多份与校验信息。
- 恢复
- 在新/原服务器安装与备份时一致的 Jenkins 版本。
- 如需全量覆盖:sudo systemctl stop jenkins;备份现有目录后解压覆盖至 /var/lib/jenkins。
- 恢复系统配置到相应路径(/etc/sysconfig/jenkins 或 /etc/default/jenkins)。
- 修正权限:sudo chown -R jenkins:jenkins /var/lib/jenkins。
- 启动服务:sudo systemctl start jenkins;登录界面验证 配置、插件、任务 是否正常。
三 使用 ThinBackup 插件进行自动化备份与恢复
- 安装与配置
- 在 Manage Jenkins → Manage Plugins 安装 ThinBackup。
- 进入 Manage Jenkins → ThinBackup → Settings,配置:
- Backup directory(备份目录)
- Backup schedule(如:0 2 * * * 每日 2 点)
- Full/Diff 备份策略与保留数量(Max number of backup sets)
- Files excluded from backup(常用:/workspace/,可减少体积)
- 选项:Backup build results、Backup user content、Backup additional files 等。
- 可点击 Backup Now 立即备份。
- 恢复
- 在 ThinBackup → Restore 选择需要的备份集。
- 按提示执行恢复并重启 Jenkins。
- 适用场景:中小型实例、需要 定时与保留策略、希望降低人为操作风险的环境。
四 自动化脚本与增量备份方案
- Shell 脚本示例(全量)
- 关键点:备份前停止服务、排除 workspace、保留多份、校验与清理旧备份。
- 示例:
- JENKINS_HOME=/var/lib/jenkins
- BACKUP_ROOT=/backups/jenkins
- DATE=$(date +%F_%H%M%S)
- mkdir -p $BACKUP_ROOT
- sudo systemctl stop jenkins
- tar -czvf $BACKUP_ROOT/jenkins_$DATE.tar.gz --exclude=$JENKINS_HOME/workspace -C $JENKINS_HOME .
- sudo systemctl start jenkins
- 可配合 find $BACKUP_ROOT -mtime +7 -delete 做保留策略
- 增量与远程备份
- rsync 增量:rsync -a --delete $JENKINS_HOME/ $BACKUP_ROOT/current/
- BorgBackup:支持去重、压缩与加密,适合远程/离线归档(示例:borg create backup::jenkins-$DATE $JENKINS_HOME)。
- 定时任务
- 将脚本加入 crontab,例如:0 2 * * * /opt/backup/jenkins_backup.sh。
五 迁移与恢复注意事项
- 版本一致:迁移/恢复时尽量保持 Jenkins 版本一致,再逐步升级插件与核心。
- 安全材料:secrets/ 与 master.key 关乎凭据与安全域,必须妥善备份与恢复;迁移后若密钥变更,可能导致凭据不可用。
- 构建产物取舍:为降低体积可只备份元数据(不备份 workspace 与大量 artifacts),必要时在恢复后触发重建。
- 权限与属主:恢复后确保 /var/lib/jenkins 属主为 jenkins:jenkins,否则可能出现无法启动或权限错误。
- 验证与演练:定期做 恢复演练 与 备份完整性校验(如校验和/还原测试),并保留 离线/异地 副本以应对灾难恢复。