一、Linux环境下Jenkins备份方法
sudo systemctl stop jenkins(若使用Docker运行,需替换为docker stop jenkins)。/var/lib/jenkins)包含配置、构建历史、插件等核心数据,使用tar命令打包:sudo tar -czvf jenkins_full_backup_$(date +%Y%m%d).tar.gz /var/lib/jenkins。config.xml(配置)、jobs(构建任务)、plugins(插件)、users(用户信息)等目录,例如:sudo tar -czvf jenkins_config_backup.tar.gz /var/lib/jenkins/config.xml /var/lib/jenkins/jobs /var/lib/jenkins/plugins。/etc/sysconfig/jenkins(CentOS/RHEL)或/etc/default/jenkins(Ubuntu/Debian),命令:sudo cp /etc/sysconfig/jenkins jenkins_config_file.bak(路径根据系统调整)。/var/lib/jenkins/backup);0 2 * * *);*.log、*.jar)以减少备份体积。/usr/local/bin/jenkins_backup.sh),内容示例如下:#!/bin/bash
BACKUP_DIR="/opt/backup/jenkins"
JENKINS_HOME="/var/lib/jenkins"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
BACKUP_FILE="$BACKUP_DIR/jenkins_backup_$TIMESTAMP.tar.gz"
# 创建备份目录
mkdir -p "$BACKUP_DIR"
# 停止Jenkins服务
sudo systemctl stop jenkins
# 备份主目录
sudo tar -czvf "$BACKUP_FILE" -C "$JENKINS_HOME" .
# 删除7天前的备份(保留最近7天)
find "$BACKUP_DIR" -name 'jenkins_backup_*' -type d -mtime +7 -exec rm -rf {} \;
# 启动Jenkins服务
sudo systemctl start jenkins
echo "Jenkins备份完成:$BACKUP_FILE"
sudo chmod +x /usr/local/bin/jenkins_backup.sh。crontab -e添加定时任务(如每天凌晨1点执行):0 1 * * * /usr/local/bin/jenkins_backup.sh >> /var/log/jenkins_backup.log 2>&1
日志将记录在/var/log/jenkins_backup.log中,便于排查问题。mysqldump命令导出数据库(假设数据库名为jenkins):mysqldump -u jenkins_user -p jenkins > /opt/backup/jenkins_db_$(date +%Y%m%d).sql
pg_dump命令:pg_dump -U jenkins_user -d jenkins -f /opt/backup/jenkins_db_$(date +%Y%m%d).sql
mysql -u jenkins_user -p jenkins < backup.sql(MySQL)或psql -U jenkins_user -d jenkins -f backup.sql(PostgreSQL)。二、Linux环境下Jenkins恢复方法
sudo systemctl stop jenkins(Docker运行则用docker stop jenkins)。sudo tar -xzvf /path/to/backup/jenkins_full_backup_20250930.tar.gz -C /var/lib/jenkins
sudo cp /path/to/backup/jenkins_config_file.bak /etc/sysconfig/jenkins # CentOS/RHEL
sudo systemctl daemon-reload
sudo systemctl start jenkins,等待服务启动完成后访问Web界面验证。jenkins_backup_20250930.tar.gz)并点击“Restore”,恢复后重启Jenkins。mysql -u jenkins_user -p jenkins < /path/to/backup/jenkins_db_20250930.sql # MySQL