From d050425567ceeac69ae4f4c100a1d0f623c170d6 Mon Sep 17 00:00:00 2001 From: mango Date: Mon, 2 Feb 2026 12:58:18 +0800 Subject: [PATCH] =?UTF-8?q?v3.6.4:=20=E4=BD=BF=E7=94=A8=E4=B8=B4=E6=97=B6?= =?UTF-8?q?=E7=9B=AE=E5=BD=95=E6=89=93=E5=8C=85=E9=81=BF=E5=85=8D=E5=8C=85?= =?UTF-8?q?=E5=90=AB=E6=97=A7=E5=BF=AB=E7=85=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vps-snapshot.sh | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/vps-snapshot.sh b/vps-snapshot.sh index 4af207f..842e12e 100755 --- a/vps-snapshot.sh +++ b/vps-snapshot.sh @@ -502,20 +502,22 @@ create_snapshot() { detect_apps > /dev/null # Docker 数据 + # Docker 数据 - 导出到临时目录 + local tmp_dir="/tmp/snapshot_$$" + mkdir -p "$tmp_dir" + if command -v docker &>/dev/null && docker info &>/dev/null; then - docker_export "$output_dir/docker_$timestamp" + docker_export "$tmp_dir" fi - # 应用数据 - backup_app_data "$output_dir" + # 应用数据 - 导出到临时目录 + backup_app_data "$tmp_dir" - # 打包(只排除已有的VPS快照文件,不排除docker和app-data) - tar --exclude="${name}_*.tar.gz" -czf "$snapshot_file" -C "$output_dir" . 2>/dev/null || true + # 打包临时目录内容 + tar -czf "$snapshot_file" -C "$tmp_dir" . 2>/dev/null || true - # 清理临时文件 - rm -rf "$output_dir/docker_$timestamp" "$output_dir/mysql" "$output_dir/postgresql" "$output_dir/mongodb" - rm -f "$output_dir"/app-data_*.tar.gz 2>/dev/null - rm -f "$output_dir"/docker-images.tar.gz 2>/dev/null + # 清理临时目录 + rm -rf "$tmp_dir" local size=$(du -h "$snapshot_file" | cut -f1) log "快照已创建: $snapshot_file ($size)"