90 lines
2.2 KiB
Bash
Executable File
90 lines
2.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# 修复部署脚本
|
|
set -e
|
|
|
|
SERVER="156.225.27.52"
|
|
PORT="5204"
|
|
USER="root"
|
|
PASSWORD="Jsjj@8888"
|
|
|
|
ssh_cmd() {
|
|
sshpass -p "$PASSWORD" ssh -o StrictHostKeyChecking=no -o ConnectTimeout=30 -p $PORT $USER@$SERVER "$1"
|
|
}
|
|
|
|
scp_cmd() {
|
|
sshpass -p "$PASSWORD" scp -o StrictHostKeyChecking=no -o ConnectTimeout=30 -P $PORT "$1" $USER@$SERVER:"$2"
|
|
}
|
|
|
|
echo "=========================================="
|
|
echo "修复部署问题..."
|
|
echo "=========================================="
|
|
|
|
echo ""
|
|
echo "步骤 1: 上传修复后的文件..."
|
|
scp_cmd "app/(admin)/api/users/route.ts" "/var/www/ai-chatbot/app/(admin)/api/users/route.ts"
|
|
|
|
echo ""
|
|
echo "步骤 2: 停止应用..."
|
|
ssh_cmd "pm2 delete ai-chatbot 2>/dev/null || true"
|
|
|
|
echo ""
|
|
echo "步骤 3: 检查 .next 目录..."
|
|
ssh_cmd "cd /var/www/ai-chatbot && ls -la .next 2>/dev/null | head -5 || echo '.next 目录不存在,需要重新构建'"
|
|
|
|
echo ""
|
|
echo "步骤 4: 重新构建项目..."
|
|
ssh_cmd "
|
|
cd /var/www/ai-chatbot
|
|
export NVM_DIR=\"\$HOME/.nvm\"
|
|
[ -s \"\$NVM_DIR/nvm.sh\" ] && . \"\$NVM_DIR/nvm.sh\"
|
|
echo '运行数据库迁移...'
|
|
pnpm db:migrate 2>&1 | grep -E '(Migrations|Error|✅|❌)' || echo '迁移完成'
|
|
echo '开始构建...'
|
|
pnpm build 2>&1 | tail -80
|
|
"
|
|
|
|
echo ""
|
|
echo "步骤 5: 检查构建结果..."
|
|
ssh_cmd "cd /var/www/ai-chatbot && ls -la .next 2>/dev/null | head -5 && echo '构建成功' || echo '构建失败'"
|
|
|
|
echo ""
|
|
echo "步骤 6: 启动应用..."
|
|
ssh_cmd "
|
|
cd /var/www/ai-chatbot
|
|
export NVM_DIR=\"\$HOME/.nvm\"
|
|
[ -s \"\$NVM_DIR/nvm.sh\" ] && . \"\$NVM_DIR/nvm.sh\"
|
|
pm2 start ecosystem.config.js
|
|
pm2 save
|
|
sleep 3
|
|
"
|
|
|
|
echo ""
|
|
echo "步骤 7: 检查应用状态..."
|
|
ssh_cmd "
|
|
pm2 status ai-chatbot
|
|
echo ''
|
|
echo '检查端口监听...'
|
|
ss -tlnp | grep 3001 || echo '端口3001未监听'
|
|
echo ''
|
|
echo '测试本地连接...'
|
|
curl -s http://localhost:3001 | head -5 || echo '应用未响应'
|
|
"
|
|
|
|
echo ""
|
|
echo "步骤 8: 检查FRPC状态..."
|
|
ssh_cmd "
|
|
systemctl status frpc.service --no-pager -l | tail -10
|
|
echo ''
|
|
journalctl -u frpc.service -n 10 --no-pager | grep -E 'ai-chatbot|success|error' | tail -5
|
|
"
|
|
|
|
echo ""
|
|
echo "=========================================="
|
|
echo "修复完成!"
|
|
echo "=========================================="
|
|
echo ""
|
|
echo "访问地址: http://$SERVER:5245"
|
|
echo ""
|
|
|