CentOS系统下Jenkins备份方法
手动备份是最直接的备份方式,适用于少量数据或临时备份场景,核心是备份Jenkins主目录(/var/lib/jenkins)下的关键文件及目录。
sudo systemctl stop jenkins
config.xml:Jenkins全局配置文件(如邮件通知、代理设置等);jobs/:所有构建任务的配置目录(包含config.xml、builds/构建历史等);users/:用户账户信息(账号、权限等);plugins/:已安装插件目录(避免恢复后重新下载)。tar命令打包:sudo tar -czvf /opt/backup/jenkins_backup_$(date +%Y%m%d).tar.gz \
-C /var/lib/jenkins config.xml jobs users plugins
scp:scp /opt/backup/jenkins_backup_*.tar.gz user@remote_server:/path/to/secure/backup/
sudo systemctl start jenkins
ThinBackup是Jenkins生态中最流行的备份插件,支持定时备份、增量备份及灵活配置,适合生产环境。
/opt/backup/jenkins_thin);0 2 * * *);jenkins_backup_20250930.tar.gz),点击「Restore」即可恢复,恢复后需重启Jenkins。通过Shell脚本可实现更灵活的备份逻辑(如增量备份、自动清理旧备份),适合需要定制化管理的场景。
#!/bin/bash
# 定义变量
JENKINS_HOME="/var/lib/jenkins"
BACKUP_DIR="/opt/backup/jenkins_scripts"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
BACKUP_FILE="$BACKUP_DIR/jenkins_backup_$TIMESTAMP.tar.gz"
# 创建备份目录
mkdir -p "$BACKUP_DIR"
# 备份Jenkins主目录
tar -czvf "$BACKUP_FILE" -C "$JENKINS_HOME" .
# 删除7天前的备份(保留最近7天)
find "$BACKUP_DIR" -name 'jenkins_backup_*' -type d -mtime +7 -exec rm -rf {} \;
echo "[$(date)] Backup completed: $BACKUP_FILE"
chmod +x /path/to/backup_script.sh
crontab -e编辑当前用户的定时任务,添加以下内容(每天凌晨2点执行):0 2 * * * /path/to/backup_script.sh >> /var/log/jenkins_backup.log 2>&1
日志会输出到/var/log/jenkins_backup.log,便于后续排查问题。若备份数据量较大,可采用增量备份策略(仅备份自上次备份后变更的文件),常用工具为rsync。
sudo yum install -y rsync
rsync -av --delete /var/lib/jenkins/ /opt/backup/jenkins_incremental/$(date +%Y%m%d)/
说明:-a表示归档模式(保留文件属性),-v表示显示详细信息,--delete表示删除目标目录中源目录不存在的文件(保持同步)。/tmp/、/var/tmp/),减少备份体积。