- Update ASR, face, OCR, pose processors - Add release pre-flight check script - Add synonym generation, chunk processing scripts - Add face recognition, stamp search utilities
110 lines
3.7 KiB
Bash
Executable File
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
|