#!/bin/bash # ============================================================ # 服务器安全清理:只删冗余与可再生的,不动跑服务的代码 # 用法:cd /var/www/wildgrowth-backend/backend && bash deploy/scripts/server-cleanup-safe.sh # 迁移后:无 backend/backend,无 sync;应用根 = backend/ # ============================================================ set -e GIT_ROOT="/var/www/wildgrowth-backend" BACKEND="$GIT_ROOT/backend" cd "$BACKEND" || { echo "❌ 目录不存在: $BACKEND"; exit 1; } echo "═══════════════════════════════════════════════════════════" echo " 服务器安全清理(不动 src、prisma、deploy、.env、dist)" echo "═══════════════════════════════════════════════════════════" # 1. 迁移后冗余:嵌套 backend/ 或 backend/backend 整目录删除(已无 sync,不再需要) echo "" echo "1️⃣ 清理冗余嵌套 backend..." removed= if [ -d "backend/backend" ]; then rm -rf backend/backend && removed=1; fi if [ -d "backend" ]; then rm -rf backend && removed=1; fi # 应用根下的 backend 子目录 [ -n "$removed" ] && echo " ✅ 已删冗余 backend/" || echo " (无冗余 backend,跳过)" # 2. 应用根下本机冗余:.DS_Store、一次性脚本 echo "" echo "2️⃣ 清理应用根下冗余文件..." for f in .DS_Store compile_content_service.sh deploy-fix-next-lesson.sh; do [ -f "$f" ] && rm -f "$f" && echo " 已删 $f" done # 3. 旧备份(若存在) if ls "$GIT_ROOT"/backend-backup-* 1>/dev/null 2>&1; then rm -rf "$GIT_ROOT"/backend-backup-* echo " ✅ 已删旧备份 backend-backup-*" fi # 4. 应用日志截断 echo "" echo "4️⃣ 截断 logs..." if [ -f "logs/combined.log" ]; then s=$(du -sh logs/combined.log 2>/dev/null | cut -f1) > logs/combined.log echo " 已截断 logs/combined.log (原 $s)" fi if [ -f "logs/error.log" ]; then > logs/error.log echo " 已截断 logs/error.log" fi # 5. PM2 日志 echo "" echo "5️⃣ 清空 PM2 日志..." pm2 flush 2>/dev/null && echo " ✅ pm2 flush 完成" || echo " ⚠️ pm2 flush 失败或未安装" # 6. npm 缓存 echo "" echo "6️⃣ 清空 npm 缓存..." npm cache clean --force 2>/dev/null && echo " ✅ npm cache 已清理" || echo " ⚠️ npm cache 清理失败" echo "" echo "═══════════════════════════════════════════════════════════" echo " 安全清理完成" echo " 可选(本机不构建 iOS 时):rm -rf $GIT_ROOT/ios 释放约 5M(git pull 会拉回)" echo "═══════════════════════════════════════════════════════════"