Linux环境下Jenkins如何备份数据
导读:Linux环境下Jenkins备份与恢复实操指南 一 核心要点与备份范围 备份的核心是 JENKINS_HOME 目录,几乎所有配置、作业、插件、构建元数据都在此目录中;在 CentOS/RHEL 上常见路径为 /var/lib/jenk...
Linux环境下Jenkins备份与恢复实操指南
一 核心要点与备份范围
- 备份的核心是 JENKINS_HOME 目录,几乎所有配置、作业、插件、构建元数据都在此目录中;在 CentOS/RHEL 上常见路径为 /var/lib/jenkins,在 Debian/Ubuntu 上同样常见该路径。为降低体积,可只备份关键子目录:config.xml、jobs、users、plugins。此外,建议同时备份环境配置文件(如 /etc/sysconfig/jenkins 或 /etc/default/jenkins)与日志(/var/log/jenkins)。若使用外部数据库(少见),需单独备份数据库。
二 手动备份步骤
- 确认主目录
- 登录 Web 管理界面:系统管理 → 系统配置,查看 JENKINS_HOME;或在服务器上查看:cat /etc/sysconfig/jenkins(RHEL/CentOS)或 cat /etc/default/jenkins(Debian/Ubuntu)。
- 停止服务(强烈建议一致性)
- 执行:sudo systemctl stop jenkins(备份期间避免写入)。
- 打包主目录
- 执行:sudo tar -czvf jenkins_backup_$(date +%F).tar.gz -C /var/lib/jenkins .(使用 -C 避免绝对路径打入包内)。
- 备份关键配置与日志
- 执行示例:
- sudo tar -czvf jenkins_config_$(date +%F).tar.gz /etc/sysconfig/jenkins /etc/default/jenkins
- sudo tar -czvf jenkins_logs_$(date +%F).tar.gz /var/log/jenkins
- 执行示例:
- 启动服务
- 执行:sudo systemctl start jenkins
- 验证
- 检查归档内容:tar -tzvf jenkins_backup_*.tar.gz;确认大小与文件数合理。
三 自动化备份脚本与定时任务
- 场景A 保留构建产物(更稳妥)
- 使用 rsync 同步到临时目录,再压缩归档,并通过计数或时间清理旧备份。示例脚本(按需调整路径与保留份数):
- 备份脚本 /opt/backup/jenkins_backup.sh
#!/usr/bin/env bash set -e JENKINS_HOME="/var/lib/jenkins" BACKUP_BASE="/data/jenkins_bak" KEEP_DAYS=7 mkdir -p "$BACKUP_BASE" TS=$(date +%Y%m%d-%H%M%S) TMP_DIR="$BACKUP_BASE/jenkins-bak-$TS" ARCHIVE="$BACKUP_BASE/jenkins-bak-$TS.tar.gz" # 使用 rsync 增量同步并排除大体积目录 rsync -a --delete \ --exclude='builds' \ --exclude='modules' \ --exclude='nextBuildNumber' \ "$JENKINS_HOME/" "$TMP_DIR/" # 归档 tar czf "$ARCHIVE" -C "$TMP_DIR" . rm -rf "$TMP_DIR" # 清理旧备份(按文件数量) (cd "$BACKUP_BASE" & & ls -1t | tail -n +$((KEEP_DAYS+1)) | xargs rm -f) echo "[$TS] Backup finished: $ARCHIVE" - 定时任务(每天 02:00 执行):0 2 * * * /opt/backup/jenkins_backup.sh > > /data/backup.log 2> & 1
- 备份脚本 /opt/backup/jenkins_backup.sh
- 使用 rsync 同步到临时目录,再压缩归档,并通过计数或时间清理旧备份。示例脚本(按需调整路径与保留份数):
- 场景B 极致精简(仅配置与作业)
- 只打包关键子目录,适合频繁备份与迁移:
#!/usr/bin/env bash set -e JENKINS_HOME="/var/lib/jenkins" BACKUP_DIR="/data/jenkins_bak" TS=$(date +%F) mkdir -p "$BACKUP_DIR" tar czf "$BACKUP_DIR/jenkins_cfg_jobs_$TS.tar.gz" \ -C "$JENKINS_HOME" config.xml jobs users plugins - 定时任务可按需设置,例如每日一次或每 6 小时一次。
- 只打包关键子目录,适合频繁备份与迁移:
四 使用插件进行备份 ThinBackup
- 安装与配置
- 进入 系统管理 → 插件管理,搜索并安装 ThinBackup Plugin;在 系统管理 → ThinBackup 中配置备份目录、计划(全量/差异)、保留策略与触发方式。
- 执行与恢复
- 在插件页面点击 Backup Now 执行备份;恢复时在同一页面选择 Restore,指定备份点后执行,完成后重启 Jenkins 并验证。
五 恢复与验证
- 准备环境
- 在新机器或修复环境安装与备份时相同版本的 Jenkins;如采用手动方式,建议先停止服务:sudo systemctl stop jenkins。
- 恢复主目录
- 将备份归档解压到 JENKINS_HOME(建议先备份当前目录):
- sudo tar -xzvf jenkins_backup_YYYY-MM-DD.tar.gz -C /var/lib/jenkins
- 将备份归档解压到 JENKINS_HOME(建议先备份当前目录):
- 恢复配置与日志(可选)
- 将 /etc/sysconfig/jenkins 或 /etc/default/jenkins 覆盖回原位置;日志可按需恢复。
- 启动与验证
- 启动:sudo systemctl start jenkins;登录 Web 界面检查:系统配置、已安装插件、作业列表与最近构建是否正常。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux环境下Jenkins如何备份数据
本文地址: https://pptw.com/jishu/757222.html
