From aba4a352e47902e322f7e7209dec263303beda40 Mon Sep 17 00:00:00 2001 From: mango Date: Mon, 2 Feb 2026 23:34:06 +0800 Subject: [PATCH] =?UTF-8?q?v3.14:=20=E4=BF=AE=E5=A4=8D=20Volume=20?= =?UTF-8?q?=E6=81=A2=E5=A4=8D=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vps-snapshot.sh | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/vps-snapshot.sh b/vps-snapshot.sh index f92066a..9b2b9c7 100755 --- a/vps-snapshot.sh +++ b/vps-snapshot.sh @@ -1,7 +1,7 @@ #!/bin/bash #=============================================================================== -# VPS 快照备份脚本 v3.13 +# VPS 快照备份脚本 v3.14 # 支持: Ubuntu, Debian, CentOS, Alpine # 功能: 智能识别应用 + Docker迁移 + 数据备份 + Telegram通知 #=============================================================================== @@ -19,7 +19,7 @@ LOG_FILE="/var/log/vps-snapshot.log" print_banner() { echo -e "${BLUE}" echo "╔═══════════════════════════════════════════════════════════╗" - echo "║ VPS 快照备份脚本 v3.13 ║" + echo "║ VPS 快照备份脚本 v3.14 ║" echo "║ 智能识别 + Docker迁移 + 数据备份 ║" echo "╚═══════════════════════════════════════════════════════════╝" echo -e "${NC}" @@ -826,12 +826,25 @@ do_data_restore() { mkdir -p "$tmp_dir" tar -xzf "$snap_file" -C "$tmp_dir" - # 导入Docker + # 导入Docker镜像 if [ -f "$tmp_dir/docker-images.tar.gz" ]; then log "导入 Docker 镜像..." gunzip -c "$tmp_dir/docker-images.tar.gz" | docker load fi + # 恢复 Docker Volumes + if [ -d "$tmp_dir/volumes" ]; then + log "恢复 Docker Volumes..." + for vol_file in "$tmp_dir/volumes"/*.tar.gz; do + [ -f "$vol_file" ] || continue + local vol_name=$(basename "$vol_file" .tar.gz) + docker volume create "$vol_name" 2>/dev/null || true + docker run --rm -v "$vol_name:/data" -v "$tmp_dir/volumes:/backup" \ + alpine sh -c "cd /data && tar -xzf /backup/$(basename $vol_file)" + log " 恢复 Volume: $vol_name" + done + fi + # 恢复应用数据 if ls "$tmp_dir"/app-data_*.tar.gz &>/dev/null; then log "恢复应用数据..."