要完整备份 Jenkins 的所有脚本和相关配置,包括 Jenkinsfile
、构建脚本(如 .sh
/ .bat
)、Job 配置、插件、凭据等,你可以从两个层面入手:
Jenkins 所有的 Job、脚本、插件、凭据都保存在 JENKINS_HOME
目录下。
系统 | 默认路径 |
---|---|
Linux | /var/lib/jenkins |
Windows | C:\Program Files (x86)\Jenkins 或 %JENKINS_HOME% |
Docker | 映射的 volume,例如 /var/jenkins_home |
$JENKINS_HOME/
├── jobs/ # 所有 Job 的配置和构建历史
│ └── MyJob/
│ ├── config.xml # 这个就是 Job 的配置,包括脚本
│ └── builds/
├── workspace/ # 每个 Job 的工作目录,包含 Jenkinsfile 和脚本
├── plugins/ # 插件目录
├── secrets/ # 凭据(需谨慎处理)
├── config.xml # Jenkins 主配置文件
├── credentials.xml # 凭据配置(加密存储)
└── users/ # 用户数据
sudo systemctl stop jenkins # 停止 Jenkins(确保文件完整性)
tar -czvf jenkins_backup_$(date +%F).tar.gz /var/lib/jenkins
sudo systemctl start jenkins # 重启 Jenkins
⚠️ 一定要在 Jenkins 停止或空闲状态备份,避免数据不一致。
如果你是用 Jenkinsfile
和脚本文件(如 .sh
, .bat
)构建流水线的,这些脚本本身就应存放在 Git 仓库中,Jenkins 自动拉取。
my-project/
├── Jenkinsfile
├── scripts/
│ ├── build.sh
│ └── test.bat
└── tools/
ls /var/lib/jenkins/plugins/ > plugins.txt
或使用插件管理器导出插件列表。
可使用插件自动定期备份:
JENKINS_HOME
备份内容 | 方法 | 推荐 |
---|---|---|
Jenkins 全部脚本和配置 | 备份 $JENKINS_HOME |
✅ 强烈推荐 |
流水线脚本、构建脚本 | 使用 Git 管理并拉取 | ✅ 标准做法 |
插件和凭据 | 包含在 $JENKINS_HOME 中 |
✅ |
自动化 | 使用 ThinBackup 插件 |
✅ |
如需我帮你写一个自动备份脚本(例如 Linux cron 定时打包),或在 Windows 上用 .bat
来定期备份,请告诉我你的系统环境,我可以直接给你脚本。
在 Jenkins 中,脚本可能存在于多个地方和文件中,取决于你是怎么组织项目的。下面是 Jenkins 中最常见的脚本存放方式和对应的文件位置说明:
路径:一般存在于项目的 Git 仓库根目录。
文件名:Jenkinsfile
作用:定义流水线(Pipeline)的流程,使用 Declarative 或 Scripted Pipeline 语法。
示例:
pipeline {
agent any
stages {
stage('Build') {
steps {
sh './build.sh'
}
}
}
}
路径:通常在项目代码仓库中,如:
your-repo/
├── Jenkinsfile
├── scripts/
│ └── run_tests.sh
└── tools/
└── flash_device.bat
用途:被 Jenkinsfile 中 sh
(Linux/macOS)或 bat
(Windows)调用执行。
优点:脚本逻辑可重用,易于本地调试。
位置:通过 Jenkins Web UI 进入某个 job 配置,例如:
Jenkins → Your Job → Configure
内容:可以在“构建” → “执行 Shell”或“执行 Windows 批处理命令”中写脚本。
缺点:不易版本管理和审计。
这些不是手写脚本,而是 Jenkins 内部文件,了解一下:
JENKINS_HOME/jobs//
:每个 Job 的配置、构建历史和 workspace。JENKINS_HOME/jobs//config.xml
:保存 Job 的配置,包括构建脚本。JENKINS_HOME/workspace//
:该 Job 的工作目录,拉取的代码、生成文件等都在这里。脚本类型 | 存放位置 | 是否推荐 | 版本控制 |
---|---|---|---|
Jenkinsfile |
Git 仓库根目录 | ✅ 推荐 | ✅ 支持 |
.sh/.bat 脚本 |
仓库 scripts/ 或 tools/ 目录 |
✅ 推荐 | ✅ 支持 |
Freestyle 脚本 | Jenkins Job 配置界面 | ⚠️ 不推荐(调试难) | ❌ 无法跟踪 |
如果你提供一个具体的 Jenkins Job 名称或项目结构,我可以帮你更具体定位脚本文件。是否你遇到的是找不到某个 .bat
或 .sh
文件的调用路径?