Files
momentry_core/scripts/deployment/safe/validate_environment.sh
Warren 8f05a7c188 feat: update Python processors and add utility scripts
- Update ASR, face, OCR, pose processors
- Add release pre-flight check script
- Add synonym generation, chunk processing scripts
- Add face recognition, stamp search utilities
2026-04-30 15:07:49 +08:00

110 lines
3.7 KiB
Bash
Executable File

#!/bin/bash
# 只讀操作,不修改任何文件
# 用於驗證 Momentry Core 環境狀態
set -e
echo "=== Momentry Core Environment Validation ==="
echo "執行時間: $(date)"
echo ""
echo "1. 📡 檢查端口佔用狀態:"
echo " Port 3002 (生產):"
if PORT_3002_PID=$(lsof -ti:3002 2>/dev/null); then
echo " ✅ 正在使用 (PID: $PORT_3002_PID)"
ps -p $PORT_3002_PID -o pid,command 2>/dev/null | tail -n +2 || true
else
echo " ❌ 未使用"
fi
echo " Port 3003 (開發):"
if PORT_3003_PID=$(lsof -ti:3003 2>/dev/null); then
echo " ✅ 正在使用 (PID: $PORT_3003_PID)"
ps -p $PORT_3003_PID -o pid,command 2>/dev/null | tail -n +2 || true
else
echo " ✅ 可用"
fi
echo ""
echo "2. ⚙️ 檢查二進制文件狀態:"
echo " 生產二進制 (momentry):"
if [ -f "/Users/accusys/momentry_core_0.1/target/release/momentry" ]; then
LS_OUTPUT=$(ls -la "/Users/accusys/momentry_core_0.1/target/release/momentry")
echo " ✅ 存在: $LS_OUTPUT"
else
echo " ❌ 不存在"
fi
echo " 開發二進制 (momentry_playground):"
if [ -f "/Users/accusys/momentry_core_0.1/target/release/momentry_playground" ]; then
LS_OUTPUT=$(ls -la "/Users/accusys/momentry_core_0.1/target/release/momentry_playground")
echo " ✅ 存在: $LS_OUTPUT"
else
echo " ⚠️ 不存在 (可能需要構建)"
fi
echo ""
echo "3. 📄 檢查環境配置文件:"
echo " 生產配置 (.env):"
if [ -f "/Users/accusys/momentry_core_0.1/.env" ]; then
echo " ✅ 存在"
grep -E "MOMENTRY_SERVER_PORT|MOMENTRY_REDIS_PREFIX" "/Users/accusys/momentry_core_0.1/.env" 2>/dev/null || echo " ⚠️ 未找到關鍵配置"
else
echo " ❌ 不存在"
fi
echo " 開發配置 (.env.development):"
if [ -f "/Users/accusys/momentry_core_0.1/.env.development" ]; then
echo " ✅ 存在"
grep -E "MOMENTRY_SERVER_PORT|MOMENTRY_REDIS_PREFIX" "/Users/accusys/momentry_core_0.1/.env.development" 2>/dev/null || echo " ⚠️ 未找到關鍵配置"
else
echo " ❌ 不存在"
fi
echo ""
echo "4. 🗄️ 檢查資料庫連接狀態:"
echo " Redis 前綴配置:"
if [ -f "/Users/accusys/momentry_core_0.1/.env" ]; then
REDIS_PREFIX=$(grep "MOMENTRY_REDIS_PREFIX" "/Users/accusys/momentry_core_0.1/.env" 2>/dev/null | cut -d= -f2 || echo "momentry:")
echo " 生產: $REDIS_PREFIX"
fi
if [ -f "/Users/accusys/momentry_core_0.1/.env.development" ]; then
DEV_REDIS_PREFIX=$(grep "MOMENTRY_REDIS_PREFIX" "/Users/accusys/momentry_core_0.1/.env.development" 2>/dev/null | cut -d= -f2 || echo "momentry_dev:")
echo " 開發: $DEV_REDIS_PREFIX"
fi
echo ""
echo "5. 🏥 生產服務健康檢查:"
if [ -n "$PORT_3002_PID" ]; then
echo " 嘗試連接生產服務 (port 3002)..."
if curl -f -s -o /dev/null -w "HTTP狀態碼: %{http_code}\n" --max-time 5 "http://localhost:3002/api/v1/health"; then
echo " ✅ 生產服務健康"
else
echo " ❌ 生產服務無法連接"
fi
else
echo " ⚠️ 無生產服務運行"
fi
echo ""
echo "6. 📊 系統資源檢查:"
echo " 記憶體使用:"
ps aux | grep -E "momentry|momentry_playground" | grep -v grep | awk '{print " " $11 " (PID:" $2 ") MEM:" $4 "% CPU:" $3 "%"}' || echo " 無相關進程"
echo ""
echo "=== 驗證總結 ==="
echo "✅ 所有只讀檢查完成"
echo "📋 未修改任何系統文件"
echo "🔒 生產服務保持原狀"
echo ""
echo "建議下一步:"
if [ -n "$PORT_3002_PID" ]; then
echo " 1. 生產服務正在運行 (PID: $PORT_3002_PID)"
echo " 2. 如需開發測試,使用 port 3003"
echo " 3. 執行: ./scripts/deployment/safe/deploy_dry_run.sh"
else
echo " 1. 無生產服務運行"
echo " 2. 可啟動開發測試"
echo " 3. 執行: ./scripts/deployment/safe/agent_commands.sh test-development"
fi