68 lines
2.1 KiB
Bash
68 lines
2.1 KiB
Bash
#!/bin/bash
|
|
|
|
# ==========================================
|
|
# Smart IMS Emergency Restore Script (Revised)
|
|
# 작성일: 2026-01-26
|
|
# ==========================================
|
|
|
|
PROJECT_DIR="/volume1/web/smartims"
|
|
BACKUP_DIR="/volume1/smart_ims"
|
|
SERVER_DIR="${PROJECT_DIR}/server"
|
|
MYSQL_BIN="/usr/local/mariadb10/bin"
|
|
|
|
DB_USER="choibk"
|
|
DB_PORT="3307"
|
|
DB_NAME="sokuree_platform_prod"
|
|
DB_HOST="127.0.0.1"
|
|
|
|
echo "=============================================="
|
|
echo "🚨 EMERGENCY RESTORE PROCESS STARTING"
|
|
echo "=============================================="
|
|
|
|
# DB 비밀번호 추출 (Node.js)
|
|
if [ -f "${SERVER_DIR}/.env" ]; then
|
|
cd "${SERVER_DIR}"
|
|
DB_PASS=$(node -e "try{const fs=require('fs');const c=fs.readFileSync('.env','utf8');const m=c.match(/^DB_PASSWORD=(.*)$/m);if(m){let p=m[1].trim();if((p.startsWith('\"')&&p.endsWith('\"'))||(p.startsWith(\"'\")&&p.endsWith(\"'\"))){p=p.slice(1,-1);}process.stdout.write(p);}}catch(e){}")
|
|
else
|
|
echo "❌ [Error] .env file not found."
|
|
exit 1
|
|
fi
|
|
|
|
# 1. 최신 이미지 복구
|
|
echo "[Step 1] Finding latest image backup..."
|
|
LATEST_IMG=$(ls -t "${BACKUP_DIR}"/backup_images_*.tar.gz 2>/dev/null | head -n 1)
|
|
|
|
if [ -n "$LATEST_IMG" ]; then
|
|
echo "✅ Found: $LATEST_IMG"
|
|
echo " Restoring images..."
|
|
tar -xzf "$LATEST_IMG" -C "${PROJECT_DIR}"
|
|
else
|
|
echo "⚠️ [Warning] No image backup found."
|
|
fi
|
|
|
|
# 2. 최신 DB 복구
|
|
echo "[Step 2] Finding latest database backup..."
|
|
LATEST_SQL=$(ls -t "${BACKUP_DIR}"/backup_db_*.sql 2>/dev/null | head -n 1)
|
|
|
|
if [ -z "$LATEST_SQL" ]; then
|
|
echo "❌ [Error] No database backup found!"
|
|
exit 1
|
|
else
|
|
echo "✅ Found: $LATEST_SQL"
|
|
echo " Restoring database..."
|
|
|
|
"${MYSQL_BIN}/mysql" -h "${DB_HOST}" -u "${DB_USER}" "-p${DB_PASS}" --port "${DB_PORT}" "${DB_NAME}" < "$LATEST_SQL"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
echo "✅ Database restore complete."
|
|
else
|
|
echo "❌ [Error] Database restore failed."
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
echo "=============================================="
|
|
echo "🎉 SYSTEM RESTORE COMPLETED"
|
|
echo " Please restart PM2: pm2 reload smartims-api"
|
|
echo "=============================================="
|