debian

Debian系统Jenkins备份恢复方法

小樊
38
2025-11-15 07:49:32
栏目: 智能运维

Debian系统下Jenkins备份与恢复实操指南

一 核心要点与准备

二 手动备份与恢复步骤

三 使用插件进行备份恢复 ThinBackup

四 自动化脚本与定时任务示例

#!/usr/bin/env bash
set -Eeuo pipefail

JENKINS_HOME="/var/lib/jenkins"
BACKUP_BASE="/backups/jenkins"
DATE=$(date +%F_%H-%M-%S)
KEEP_DAYS=7

# 0=全量;1=增量(基于最近一次全量)
FULL=1

mkdir -p "$BACKUP_BASE"

if (( FULL == 1 )); then
  # 查找最近的全量备份作为基准
  LAST_FULL=$(find "$BACKUP_BASE" -maxdepth 1 -name "jenkins_full_*.tar.gz" -printf '%T@ %p\n' 2>/dev/null | sort -nr | head -n1 | awk '{print $2}')
  if [[ -n "$LAST_FULL" ]]; then
    INCR_DIR="$BACKUP_BASE/jenkins_incr_$DATE"
    mkdir -p "$INCR_DIR"
    rsync -a --link-dest="$LAST_FULL" "$JENKINS_HOME/" "$INCR_DIR/"
    tar -czf "$BACKUP_BASE/jenkins_incr_$DATE.tar.gz" -C "$INCR_DIR" .
    rm -rf "$INCR_DIR"
  else
    # 无全量则做一次全量
    tar -czf "$BACKUP_BASE/jenkins_full_$DATE.tar.gz" -C "$JENKINS_HOME" .
  fi
else
  tar -czf "$BACKUP_BASE/jenkins_full_$DATE.tar.gz" -C "$JENKINS_HOME" .
fi

# 清理旧备份
find "$BACKUP_BASE" -name "jenkins_*.tar.gz" -mtime +$KEEP_DAYS -delete

五 注意事项与验证清单

0
看了该问题的人还看了