一文掌握Jenkins备份教程,效率提升300%

2026-08-17 来源: 点击量


Jenkins 备份的核心原则非常简单:Jenkins 的所有数据几乎都集中在 JENKINS_HOME 目录中,只要备份好这个目录,就可以完整恢复整个 Jenkins 实例。下面从确认目录、备份方式到恢复验证,给你一套完整的实操教程。

一文掌握Jenkins备份教程,效率提升300%

 确认 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 版本控制,作为备份的补充

相关文章
  • Docker安装路线图完全指南:运维工程师必备手册
    Docker安装路线图完全指南:运维工程师必备手册

    安装前准备1. 确认系统架构Windows:打开「设置 → 系统 → 系统信息」,查看「系统类型」确认是 x64 还是 ARM64macOS:点击左上角苹果图标 → 关于本机,查看「芯片」确认是 Apple Silicon(M1/M2/M3)还是 IntelLinux:终端执行 uname -m,输出 x86_64 为 AMD64,aarch64 为 ARM642. 卸载旧...

  • 为什么推荐Traefik?深度对比与实测
    为什么推荐Traefik?深度对比与实测

    Traefik(发音为 traffic)是一款专为微服务架构和云原生环境设计的现代化开源 HTTP 反向代理和负载均衡器。与传统的反向代理(如 Nginx)不同,Traefik 的核心优势在于自动化服务发现与动态配置,它能实时监听基础设施的变化并自动更新路由规则,全程无需重启服务。核心...

  • 为什么推荐全站加速?深度对比与实测
    为什么推荐全站加速?深度对比与实测

    全站加速(通常被称为 WSA、ECDN 或 ICDN)是一种融合了动态加速和静态加速的网站加速解决方案。它专门针对动静态内容混合的网站,能够同时解决静态资源加载慢和动态请求延迟高的问题。核心原理:动静分离与智能路由全站加速的核心在于“动静分离”和“智能路由...

  • SRE面试速成详解:从入门到生产环境实践
    SRE面试速成详解:从入门到生产环境实践

    SRE(站点可靠性工程)面试的核心,在于考察你是否具备“用软件工程思维解决运维问题”的能力。结合你平时对软件开发技术和前沿科技资讯的关注,以下为你梳理了一份高效的 SRE 面试速成指南:核心思维:SRE 到底在做什么?SRE 不是传统的运维,而是“当软件工程师...

  • Jenkins安全加固教程最佳实践:资深运维的私藏技巧
    Jenkins安全加固教程最佳实践:资深运维的私藏技巧

    文库里暂时没有收录 Jenkins 安全加固的专题文档,视频资源也未检索到。下面我基于 Jenkins 官方文档和 SANS 的加固指南,为你整理一份可直接落地的教程,并在文末附上官方权威文档链接供你收藏。第一道防线:启用并收紧认证授权Jenkins 默认安装后处于“裸奔”状...

  • Nginx详解:从入门到生产环境实践
    Nginx详解:从入门到生产环境实践

    Nginx(发音为 "engine X")是一款开源的高性能 Web 服务器和反向代理服务器。它由俄罗斯程序员 Igor Sysoev 于 2004 年发布,最初是为了解决高并发场景下的 C10K 问题(即单机支持 1 万并发连接)而设计的。凭借极低的资源消耗和卓越的并发处理能力,Nginx 已成为现代互联网架...