一文掌握Jenkins备份教程,效率提升300%
Jenkins 备份的核心原则非常简单:Jenkins 的所有数据几乎都集中在 JENKINS_HOME 目录中,只要备份好这个目录,就可以完整恢复整个 Jenkins 实例。下面从确认目录、备份方式到恢复验证,给你一套完整的实操教程。
确认 JENKINS_HOME 位置
在开始备份前,先确认你的 Jenkins 主目录在哪里:
页面查看:Jenkins 管理界面 → Manage Jenkins → System → 查看 Home directory
命令行查看:grep JENKINS_HOME /etc/default/jenkins
常见默认路径:
表格
下载为表格
导出为图片
环境默认路径
Linux(CentOS/Ubuntu/Debian)/var/lib/jenkins
Docker/var/jenkins_home
WindowsC:ProgramDataJenkins.jenkins
需要备份的核心内容
JENKINS_HOME 目录下包含以下关键内容:
表格
下载为表格
导出为图片
目录/文件说明是否必须备份
config.xmlJenkins 全局配置
jobs/所有 Job/Pipeline 配置
users/用户账户信息
secrets/凭证、密钥(极其重要)
plugins/已安装插件
nodes/Agent 节点配置
credentials.xml凭据配置
workspace/构建工作空间(太大,可跳过)
builds/构建历史(按需)
备份方式
方式一:手动全量备份(最简单、最稳妥)
这是最基础也最可靠的方式,适合临时备份或迁移场景。
步骤:
停止 Jenkins 服务(强烈建议,防止数据不一致)bash
编辑
1sudo systemctl stop jenkins
打包 JENKINS_HOME 目录bash
编辑
1sudo tar -czvf jenkins_backup_$(date +%F).tar.gz /var/lib/jenkins
启动 Jenkins 服务bash
编辑
1sudo systemctl start jenkins
将备份文件转移到安全位置(远程服务器、对象存储等)bash
编辑
1sudo cp jenkins_backup_*.tar.gz /data/backup/
2# 或远程传输
3scp jenkins_backup_*.tar.gz user@backup-server:/backup/
方式二:rsync 增量备份(不停机,适合生产环境)
如果不想停机,可以使用 rsync 进行增量同步:
bash
编辑
1# 本地增量备份
2sudo rsync -av /var/lib/jenkins/ /backup/jenkins_home/
3
4# 远程增量备份
5sudo rsync -avz /var/lib/jenkins/ user@backup-server:/backup/jenkins/
注意:正在写入的构建日志可能不完整,恢复后建议做一次 Reload Configuration from Disk。
方式三:ThinBackup 插件(图形化操作,推荐新手)
ThinBackup 是 Jenkins 社区最常用的备份插件,支持定时备份、增量备份和自动清理。
安装与配置:
进入 Manage Jenkins → Plugins → 搜索并安装 ThinBackup
进入 Manage Jenkins → System → 找到 ThinBackup 配置区域
设置以下参数:
表格
下载为表格
导出为图片
配置项说明
Backup Directory备份存储路径(如 /var/lib/jenkins/JENKINS_BACKUP)
Full Backup Schedule全量备份的 Cron 表达式(如 0 2 * * 0 每周日凌晨2点)
Differential Backup Schedule增量备份的 Cron 表达式(如 0 2 * * 1-6 周一至周六)
Max Backup Sets保留的备份集数量
Backup build results是否备份构建结果(建议关闭以减小体积)
Backup plugins是否备份插件目录
点击 Backup Now 立即执行一次备份
手动恢复:
进入 Manage Jenkins → ThinBackup → Restore → 选择备份集 → 点击 Restore → 重启 Jenkins
方式四:自动化脚本 + Crontab(推荐生产环境)
编写一个完整的备份脚本,包含自动打包、日志记录和旧备份清理:
bash
编辑
1#!/bin/bash
2# backup_jenkins.sh
3
4JENKINS_HOME="/var/lib/jenkins"
5BACKUP_DIR="/mnt/backups/jenkins"
6TIMESTAMP=$(date +%Y%m%d_%H%M%S)
7BACKUP_FILE="$BACKUP_DIR/jenkins_backup_$TIMESTAMP.tar.gz"
8
9# 创建备份目录
10mkdir -p "$BACKUP_DIR"
11
12# 打包(排除临时文件和 workspace)
13tar -czvf "$BACKUP_FILE"
14 --exclude="$JENKINS_HOME/workspace/*"
15 --exclude="$JENKINS_HOME/logs/*"
16 --exclude="$JENKINS_HOME/plugins/*.tmp"
17 "$JENKINS_HOME"
18
19# 删除 30 天前的旧备份
20find "$BACKUP_DIR" -name "jenkins_backup_*.tar.gz" -type f -mtime +30 -delete
21
22# 记录日志
23echo "[$(date)] Jenkins backup completed: $BACKUP_FILE" >> "$BACKUP_DIR/backup.log"
赋予执行权限并配置定时任务:
bash
编辑
1sudo chmod +x /usr/local/bin/backup_jenkins.sh
2sudo crontab -e
3# 添加:每天凌晨 2 点执行
40 2 * * * /usr/local/bin/backup_jenkins.sh
方式五:Docker 环境备份
如果你的 Jenkins 运行在 Docker 容器中:
bash
编辑
1# 查看容器名
2docker ps
3
4# 备份数据卷
5docker run --rm
6 -v jenkins_home:/var/jenkins_home
7 -v $(pwd):/backup
8 alpine
9 tar czf /backup/jenkins_backup.tar.gz /var/jenkins_home
恢复:
bash
编辑
1docker run --rm
2 -v jenkins_home:/var/jenkins_home
3 -v $(pwd):/backup
4 alpine
5 tar xzf /backup/jenkins_backup.tar.gz -C /
恢复 Jenkins(关键步骤)
无论使用哪种备份方式,恢复流程基本一致:
bash
编辑
1# 1. 停止 Jenkins
2sudo systemctl stop jenkins
3
4# 2. 清空原目录(谨慎操作)
5sudo rm -rf /var/lib/jenkins/*
6
7# 3. 解压备份
8sudo tar -xzvf jenkins_backup_2026-08-17.tar.gz -C /
9
10# 4. 修复权限(非常重要!)
11sudo chown -R jenkins:jenkins /var/lib/jenkins
12
13# 5. 启动 Jenkins
14sudo systemctl start jenkins
权限修复是恢复后最容易踩的坑。如果跳过 chown 步骤,Jenkins 启动后会因为无法读写文件而报错。
最佳实践总结
表格
下载为表格
导出为图片
项目建议
备份频率每天一次(配置变更频繁时可增加到每小时)
保留策略保留最近 7~30 天的备份
存储位置备份文件必须存到远程服务器或对象存储(S3/OSS),不能只留在本机
恢复测试至少每季度做一次恢复演练,验证备份的可用性
最小备份集config.xml + jobs/ + users/ + secrets/ + plugins/
Git 管理配置建议将 Pipeline 脚本和 Job 配置纳入 Git 版本控制,作为备份的补充
-
一文掌握Jenkins备份教程,效率提升300%Jenkins 备份的核心原则非常简单:Jenkins 的所有数据几乎都集中在 JENKINS_HOME 目录中,只要备份好这个目录,就可以完整恢复整个 Jenkins 实例。下面从确认目录、备份方式到恢复验证,给你一套完整的实操教程。确认 JENKINS_HOME 位置在开始备份前,先确认你的 Jenkins 主...
-
【收藏级】S3全套配置模板与脚本“S3”是一个在不同领域都有广泛使用的缩写。结合你平时的技术关注点,这里为你梳理了 S3 在云计算、AI芯片、新能源汽车等方向的最新含义:云计算:Amazon S3 (对象存储)这是 S3 最经典的含义,全称为 Amazon Simple Storage Service。核心定位:它是 AWS 提供的一种对象存...
-
【实战】内存高怎么办,一步步带你搞定针对 IK 分词器导致的内存占用过高问题,可以从词典管理、JVM 调优以及架构策略三个层面进行系统性排查和优化:词典与缓存优化控制词典规模:IK 分词器在初始化时会将主词典、扩展词典及停用词全部加载至 JVM 堆内存中。建议定期清理无效词条,控制总词条数。...
-
为什么推荐Zsh优化方案?深度对比与实测Zsh 启动慢、卡顿通常是因为加载了过多的插件、复杂的主题或重复的环境变量。结合你平时做网站开发和服务器运维的背景,这里为你梳理了一套从“诊断”到“根治”的 Zsh 性能优化方案,帮你把终端启动时间从几秒压缩到 0.5 秒以内。1. 性能诊断:找出拖慢速度...
-
一文掌握十分钟IaC,效率提升300%十分钟掌握 IaC(基础设施即代码),核心在于理解它的本质:把过去手动敲命令、点云控制台搭环境的重复劳动,变成可版本控制、可复用的代码。以下是为你提炼的 IaC 核心速成指南:1. 核心优势:为什么必须用 IaC?环境一致性: 彻底告别“在我机器上能跑”的玄学...
-
Shell脚本标准完全指南:运维工程师必备手册编写高质量的 Shell 脚本,核心在于兼顾可读性、可维护性和安全性。结合你平时在服务器运维和网络安全方面的技术积累,这里为你梳理了一套从底层规范到防御性编程的实战标准:1. 文件基础与命名规范Shebang 声明: 脚本第一行必须明确指定解释器,如 #!/bin/bash ...