feat: 支持自定义排除路径 EXCLUDE_PATHS
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
#===============================================================================
|
||||
# VPS 快照备份脚本 v3.15
|
||||
# VPS 快照备份脚本 v3.16
|
||||
# 支持: 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.15 ║"
|
||||
echo "║ VPS 快照备份脚本 v3.16 ║"
|
||||
echo "║ 智能识别 + Docker迁移 + 数据备份 ║"
|
||||
echo "╚═══════════════════════════════════════════════════════════╝"
|
||||
echo -e "${NC}"
|
||||
@@ -388,12 +388,21 @@ backup_app_data() {
|
||||
local snap_dir="${LOCAL_DIR:-/var/snapshots}"
|
||||
if [ -n "$backup_paths" ]; then
|
||||
log "📦 打包数据目录..."
|
||||
local exclude_args=""
|
||||
if [ -n "$EXCLUDE_PATHS" ]; then
|
||||
IFS=':' read -ra _ep <<< "$EXCLUDE_PATHS"
|
||||
for _p in "${_ep[@]}"; do
|
||||
[ -n "$_p" ] && exclude_args+=" --exclude=$_p"
|
||||
done
|
||||
log "排除路径: $EXCLUDE_PATHS"
|
||||
fi
|
||||
tar --exclude='*.sock' --exclude='*.pid' --exclude='node_modules' \
|
||||
--exclude='.npm' --exclude='.cache' --exclude='__pycache__' \
|
||||
--exclude='*.log' --exclude='/var/log/*' \
|
||||
--exclude='/var/cache/*' --exclude='/tmp/*' \
|
||||
--exclude="$snap_dir" --exclude='/var/snapshots' \
|
||||
--exclude='/root/.cache' --exclude='/root/.local/share/Trash' \
|
||||
$exclude_args \
|
||||
-czf "$output_dir/app-data.tar.gz" $backup_paths 2>/dev/null || true
|
||||
local data_size=$(du -h "$output_dir/app-data.tar.gz" 2>/dev/null | cut -f1)
|
||||
info "数据已保存: $output_dir/app-data.tar.gz ($data_size)"
|
||||
@@ -1164,6 +1173,7 @@ REMOTE_DIR="$REMOTE_DIR"
|
||||
REMOTE_KEEP_DAYS="$REMOTE_KEEP_DAYS"
|
||||
TG_BOT_TOKEN="$TG_BOT_TOKEN"
|
||||
TG_CHAT_ID="$TG_CHAT_ID"
|
||||
EXCLUDE_PATHS="$EXCLUDE_PATHS"
|
||||
EOF
|
||||
chmod 600 "$CONFIG_FILE"
|
||||
}
|
||||
@@ -1204,6 +1214,10 @@ do_setup() {
|
||||
read -p "Bot Token: " TG_BOT_TOKEN
|
||||
[ -n "$TG_BOT_TOKEN" ] && read -p "Chat ID: " TG_CHAT_ID
|
||||
|
||||
echo ""
|
||||
info "排除路径 (可选,多个用冒号分隔,如 /data/downloads:/data/media)"
|
||||
read -p "排除路径 [无]: " EXCLUDE_PATHS
|
||||
|
||||
save_config
|
||||
log "配置已保存到 $CONFIG_FILE"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user