Ubuntu 上 Jenkins 的备份与恢复
一 核心原则与准备
二 手动备份与自动化
sudo systemctl stop jenkinssudo tar -czvf jenkins_backup_$(date +%F).tar.gz -C /var/lib/jenkins .sudo systemctl start jenkins--exclude jobs/*/builds --exclude jobs/*/workspace --exclude logs--exclude cache --exclude tmp/opt/backup/jenkins_backup.sh#!/usr/bin/env bash
set -e
BACKUP_DIR="/opt/backups/jenkins"
JENKINS_HOME="/var/lib/jenkins"
TIMESTAMP=$(date +%F_%H-%M-%S)
mkdir -p "$BACKUP_DIR"
sudo tar -czvf "$BACKUP_DIR/jenkins_$TIMESTAMP.tar.gz" \
-C "$JENKINS_HOME" \
--exclude='jobs/*/builds' \
--exclude='jobs/*/workspace' \
--exclude='logs' \
--exclude='cache' \
--exclude='tmp' \
.
0 2 * * * /opt/backup/jenkins_backup.sh >> /var/log/jenkins_backup.log 2>&1find $BACKUP_DIR -mtime +30 -delete 清理 30 天前归档。三 使用插件进行备份 ThinBackup
四 恢复步骤与迁移要点
sudo systemctl stop jenkinssudo mv /var/lib/jenkins /var/lib/jenkins.bak_$(date +%F)sudo tar -xzvf /opt/backups/jenkins_YYYY-MM-DD_HH-MM-SS.tar.gz -C /sudo chown -R jenkins:jenkins /var/lib/jenkinssudo systemctl start jenkinsJAVA_ARGS="-Djavax.net.ssl.trustStore=$JENKINS_HOME/jenkins_keystore.jks")。五 验证与最佳实践
ls $JENKINS_HOME/plugins/ | awk -F'.' '{print $1}' > plugins.list 恢复后再次导出并 diff 校验。