first commit

This commit is contained in:
admin
2026-05-20 15:05:35 +08:00
commit ac09b26253
2048 changed files with 189478 additions and 0 deletions

104
Back_Up.sh Normal file
View File

@@ -0,0 +1,104 @@
#!/usr/bin/env bash
# sync_interactive.sh —— 交互式同步脚本 (v3)
# 脚本会自动以其自身所在的位置为根目录,并提供不同的同步备份模式。
set -euo pipefail
# --- 根目录设置 ---
# 获取脚本文件所在的绝对路径,并将其作为所有操作的根目录
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
# --- 配置区域 ---
# 算法源目录 (路径基于脚本位置)
SRC_DIRS=(
"$SCRIPT_DIR/Seg_All_In_One_YoloModel"
"$SCRIPT_DIR/Seg_All_In_One_SegModel"
"$SCRIPT_DIR/Seg_All_In_One_MMSeg"
"$SCRIPT_DIR/Seg_All_In_One_Analysis"
)
# 本地镜像/中转目录 (路径基于脚本位置)
LOCAL_DST_ROOT="$SCRIPT_DIR/Hardisk"
# NAS备份目标目录 (路径基于脚本位置)
NAS_DST_ROOT="$SCRIPT_DIR/Nas_BackUp_Seg"
# --- 用户选择操作 ---
echo "--- 请选择要执行的同步操作 ---"
echo " 1. [更新并备份算法文件] 从源头更新算法文件到Hardisk并立即备份到NAS"
echo " 2. [备份Hardisk] 将整个Hardisk目录的当前内容完全拷贝到NAS【--delete】"
echo " 3. [退出] 不执行任何操作"
echo "------------------------------------------------"
read -p "请输入选项 [1, 2, 或 3]: " choice
case $choice in
1)
echo "--- 您选择了 [1]: 更新并备份算法文件 (源->Hardisk->NAS) ---"
# --- 第 1 步: 从源目录更新文件到 Hardisk ---
echo ""
echo "--> (1/2) 正在从源目录更新文件到 $LOCAL_DST_ROOT..."
for src_path in "${SRC_DIRS[@]}"; do
if [ ! -d "$src_path" ]; then
echo " 警告: 源目录 '$src_path' 不存在,已跳过。"
continue
fi
dst_dir_name=$(basename "$src_path")
dst_path=$(mkdir -p "$LOCAL_DST_ROOT/$dst_dir_name" && realpath "$LOCAL_DST_ROOT/$dst_dir_name")
echo " >>> 正在同步 $src_path -> $dst_path"
rsync -avh --delete "$src_path/" "$dst_path/"
done
echo "--> (1/2) 本地 Hardisk 更新完成。"
# --- 第 2 步: 从 Hardisk 备份到 NAS ---
echo ""
echo "--> (2/2) 正在将更新后的算法文件从 Hardisk 备份到 $NAS_DST_ROOT..."
for dir_full_path in "${SRC_DIRS[@]}"; do
dir_name=$(basename "$dir_full_path")
src_from_hardisk="$LOCAL_DST_ROOT/$dir_name"
dst_to_nas="$NAS_DST_ROOT/$dir_name"
if [ ! -d "$src_from_hardisk" ]; then
echo " 警告: 源目录 '$src_from_hardisk' 在 Hardisk 中不存在,已跳过备份。"
continue
fi
mkdir -p "$dst_to_nas"
dst_path_final=$(realpath "$dst_to_nas")
echo " >>> 正在备份 $src_from_hardisk -> $dst_path_final"
rsync -avh --delete "$src_from_hardisk/" "$dst_path_final/"
done
echo "--> (2/2) 指定的算法文件已成功备份到 NAS"
;;
2)
echo "--- 您选择了 [2]: 仅备份Hardisk (Hardisk->NAS) ---"
src="$LOCAL_DST_ROOT/"
dst="$NAS_DST_ROOT/"
if [ ! -d "$src" ]; then
echo "错误: 源目录 '$src' 不存在,无法继续。"
exit 1
fi
mkdir -p "$dst"
echo ">>> 正在将 $src 的全部内容备份到 $dst"
rsync -avh --delete "$src" "$dst" # 使用增量复制
echo ">>> Hardisk 目录已完全备份到 NAS"
;;
3)
echo "--- 您选择了 [3]: 退出 ---"
echo "操作已取消。"
;;
*)
echo "无效选项 '$choice'。请输入 1, 2, 或 3。"
exit 1
;;
esac
echo ""
echo ">>> 全部任务完成!"