在Debian系统上备份Jenkins数据可以通过以下几种方法实现:
确定Jenkins主目录:
Jenkins的主目录通常位于 /var/lib/jenkins
。
打包需要备份的数据: 进入Jenkins主目录,需要打包的文件包括:
config.xml
:存放Jenkins的配置信息。jobs
:存放创建的工程项目的文件。users
:存放用户账户信息的文件。plugins
:存放插件的文件夹。停止Jenkins服务: 在打包和拷贝数据之前,确保Jenkins服务已经停止,以防止打包不完整或拷贝不完整。
sudo systemctl stop jenkins
拷贝备份文件: 将打包的文件拷贝到目标机器的Jenkins主目录下。如果目标机器尚未安装Jenkins,可以直接覆盖这些文件夹。如果目标机器已经安装Jenkins,则需要处理同名文件和项目。
安装ThinBackup插件: 在Jenkins的管理界面中,选择“系统管理” - “管理插件” - “可选插件”,搜索并安装“ThinBackup”插件。
配置备份: 安装完成后,在“系统管理” - “系统设置” - “ThinBackup”中进行备份设置,包括:
userContent
文件夹:选择是否备份userContent
目录下的文件。执行备份: 可以手动执行备份(点击“Backup Now”按钮),或者设置定时任务自动执行备份。
恢复备份: 在需要恢复时,选择相应的备份文件进行恢复操作。
可以编写一个Shell脚本来实现自动备份。例如:
#!/bin/bash
# 指定Jenkins的安装目录路径
JENKINS_HOME="/var/lib/jenkins"
# 当前日期
current_date=$(date +%Y%m%d)
# 备份目录
backup_dir="/backups/jenkins_$current_date"
# 进入Jenkins主目录
cd $JENKINS_HOME
# 按日期备份
tar -czvf $backup_dir".tar.gz" config.xml jobs users plugins
将上述脚本保存为可执行文件,并添加到系统的定时任务中,例如使用cron每天执行备份。
如果你希望进行增量备份,可以使用rsync命令:
rsync -av --delete /var/lib/jenkins/ /backups/jenkins_$current_date/
borgbackup是一个高效的备份工具,适合用于远程备份:
borg create --verbose --filter AME --list --stats --show-rc --one-file-system --exclude-caches --compression zstd,level19 --exclude '/dev/*' --exclude '/proc/*' --exclude '/run/*' --exclude '/sys/*' --exclude '/tmp/*' --exclude '/var/tmp/*' --exclude '/mnt/*' --exclude '/media/*' --exclude '/lostfound' --exclude '/swapfile' --exclude '/swap分区' --exclude '/var/lib/docker/*' --exclude '/home/*/.cache/*' backup::archive /var/lib/jenkins/