Linux下Jenkins如何备份
导读:Linux下Jenkins备份与恢复指南 一 核心要点与准备 备份的核心是JENKINS_HOME目录,几乎所有配置、作业、插件、用户等数据都在其中;因此无论是手动打包还是插件备份,实质都是围绕该目录进行。若使用外部配置(如系统级配置文件...
Linux下Jenkins备份与恢复指南
一 核心要点与准备
- 备份的核心是JENKINS_HOME目录,几乎所有配置、作业、插件、用户等数据都在其中;因此无论是手动打包还是插件备份,实质都是围绕该目录进行。若使用外部配置(如系统级配置文件、日志、war包),也建议一并纳入备份范围。为降低体积,可在备份时排除builds、modules、nextBuildNumber等大目录(迁移/恢复时按需处理)。为减少不一致,建议在备份窗口内短暂停止Jenkins服务或使用文件系统快照/暂停写入的方式。
二 手动备份步骤
- 确认主目录位置:
- 管理界面:系统管理 → 系统配置 查看“主目录”
- 服务器上常见路径:/var/lib/jenkins
- 也可通过系统文件查看:如 /etc/sysconfig/jenkins(RHEL/CentOS)或 /etc/default/jenkins(Debian/Ubuntu)
- 停止服务(可选但更一致):
- systemd:sudo systemctl stop jenkins
- 打包主目录(示例):
- sudo tar -czvf jenkins_backup_$(date +%F).tar.gz /var/lib/jenkins
- 仅备份关键配置与作业(体积更小):
- tar -czvf jenkins_cfg_$(date +%F).tar.gz /var/lib/jenkins/{ config.xml,jobs,users,plugins}
- 备份系统级配置与日志(可选):
- 配置:sudo tar -czvf jenkins_syscfg_$(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
- 将备份文件迁移到安全位置(如对象存储、NFS、异地主机),并校验完整性(如tar -tzf 列表核验)。
三 自动定时备份脚本
- 目标:每日2:00自动备份,保留7天,排除大目录,压缩归档,记录日志。
- 示例脚本(/opt/backup/jenkins_backup.sh):
#!/usr/bin/env bash
set -Eeuo pipefail
JENKINS_HOME="/var/lib/jenkins"
BACKUP_BASE="/opt/backup"
DATE=$(date +%F_%H-%M-%S)
RETENTION_DAYS=7
# 创建备份目录
mkdir -p "$BACKUP_BASE"
# 临时目录
TMP_DIR="$BACKUP_BASE/jenkins_$DATE"
mkdir -p "$TMP_DIR"
# 使用rsync增量同步并排除大目录,再打包
rsync -a --delete \
--exclude='builds' \
--exclude='modules' \
--exclude='nextBuildNumber' \
"$JENKINS_HOME/" "$TMP_DIR/"
# 归档
tar czf "$BACKUP_BASE/jenkins_backup_$DATE.tar.gz" -C "$TMP_DIR" .
# 清理临时目录
rm -rf "$TMP_DIR"
# 清理过期备份
find "$BACKUP_BASE" -name 'jenkins_backup_*.tar.gz' -mtime +$RETENTION_DAYS -delete
echo "[$(date)] Backup finished: jenkins_backup_$DATE.tar.gz" >
>
"$BACKUP_BASE/backup.log"
- 赋权与定时任务:
- 赋权:chmod +x /opt/backup/jenkins_backup.sh
- 定时(root):sudo crontab -e
- 添加:0 2 * * * /opt/backup/jenkins_backup.sh
- 说明:若希望备份期间完全一致性,可在脚本开头加入systemctl stop jenkins,末尾systemctl start jenkins;注意窗口期对业务的影响。
四 使用插件备份 ThinBackup
- 安装:管理界面 系统管理 → 插件管理,搜索并安装ThinBackup Plugin。
- 配置:管理界面 系统管理 → ThinBackup Settings,设置备份目录、备份计划(如每日/每周)、保留策略、触发条件等。
- 执行:点击Backup Now立即备份;需要恢复时在同一页面选择Restore并指定备份点。
- 适用场景:希望图形化配置、定期自动备份与快速回滚的团队。
五 恢复与迁移
- 准备环境:在新机器安装与备份时版本尽量一致的Jenkins,并停服务。
- 恢复主目录:
- 将备份归档解压至目标主目录(如**/var/lib/jenkins**),保持文件属主属组与权限一致(常见为jenkins:jenkins)。
- 示例:sudo tar -xzvf jenkins_backup_2025-12-04.tar.gz -C /var/lib
- 仅恢复关键配置(可选):
- 将备份中的config.xml、jobs、users、plugins覆盖到对应目录后启动服务。
- 启动与验证:
- sudo systemctl start jenkins,登录管理界面检查:系统配置、作业列表、插件、用户与构建历史是否完整。
- 注意事项:
- 迁移时若新旧实例同名作业冲突,需先在目标端改名或调整后再覆盖;
- 若备份不含builds等历史产物,恢复后历史构建记录将不存在(可按需从归档中单独恢复)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux下Jenkins如何备份
本文地址: https://pptw.com/jishu/763820.html
