更新PM2配置并添加相关脚本
This commit is contained in:
91
backend/scripts/start-server.sh
Normal file
91
backend/scripts/start-server.sh
Normal file
@@ -0,0 +1,91 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 结伴客后端服务器启动脚本
|
||||
# 适用于CentOS生产环境
|
||||
# 服务器目录: /data/nodejsjiebanke/
|
||||
|
||||
set -e
|
||||
|
||||
# 配置参数
|
||||
APP_NAME="jiebanke-backend"
|
||||
APP_DIR="/data/nodejsjiebanke"
|
||||
PORT="3310"
|
||||
LOG_DIR="$APP_DIR/logs"
|
||||
|
||||
cd "$APP_DIR"
|
||||
|
||||
echo "🚀 开始启动 $APP_NAME 服务..."
|
||||
echo "📋 工作目录: $APP_DIR"
|
||||
echo "🔌 服务端口: $PORT"
|
||||
echo "📊 日志目录: $LOG_DIR"
|
||||
echo ""
|
||||
|
||||
# 创建日志目录
|
||||
if [ ! -d "$LOG_DIR" ]; then
|
||||
mkdir -p "$LOG_DIR"
|
||||
echo "✅ 创建日志目录: $LOG_DIR"
|
||||
fi
|
||||
|
||||
# 检查Node.js环境
|
||||
echo "🔍 检查Node.js环境..."
|
||||
if ! command -v node &> /dev/null; then
|
||||
echo "❌ Node.js未安装,请先安装Node.js"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! command -v npm &> /dev/null; then
|
||||
echo "❌ npm未安装,请先安装npm"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! command -v pm2 &> /dev/null; then
|
||||
echo "❌ pm2未安装,正在安装pm2..."
|
||||
npm install -g pm2
|
||||
echo "✅ pm2安装完成"
|
||||
fi
|
||||
|
||||
echo "✅ Node.js版本: $(node -v)"
|
||||
echo "✅ npm版本: $(npm -v)"
|
||||
echo "✅ pm2版本: $(pm2 -v)"
|
||||
|
||||
# 安装依赖
|
||||
echo ""
|
||||
echo "📦 安装项目依赖..."
|
||||
npm install --production
|
||||
|
||||
# 停止现有服务(如果存在)
|
||||
echo ""
|
||||
echo "🛑 停止现有服务..."
|
||||
pm2 delete "$APP_NAME" 2>/dev/null || true
|
||||
pm2 flush "$APP_NAME" 2>/dev/null || true
|
||||
|
||||
# 启动服务
|
||||
echo ""
|
||||
echo "🚀 启动服务..."
|
||||
NODE_ENV=production PORT=$PORT pm2 start ecosystem.config.js --name "$APP_NAME"
|
||||
|
||||
# 保存pm2配置
|
||||
echo ""
|
||||
echo "💾 保存pm2配置..."
|
||||
pm2 save
|
||||
|
||||
# 设置开机自启
|
||||
echo ""
|
||||
echo "🔧 设置开机自启..."
|
||||
pm2 startup 2>/dev/null || echo "⚠️ 开机自启设置可能需要手动执行: pm2 startup"
|
||||
|
||||
# 显示服务状态
|
||||
echo ""
|
||||
echo "📊 服务状态:"
|
||||
pm2 status "$APP_NAME"
|
||||
|
||||
echo ""
|
||||
echo "✅ $APP_NAME 服务启动成功!"
|
||||
echo "🌐 服务地址: http://localhost:$PORT"
|
||||
echo "📋 启动时间: $(date)"
|
||||
echo ""
|
||||
echo "💡 常用命令:"
|
||||
echo " 查看日志: pm2 logs $APP_NAME"
|
||||
echo " 重启服务: pm2 restart $APP_NAME"
|
||||
echo " 停止服务: pm2 stop $APP_NAME"
|
||||
echo " 服务状态: pm2 status"
|
||||
65
backend/scripts/sync-to-server.ps1
Normal file
65
backend/scripts/sync-to-server.ps1
Normal file
@@ -0,0 +1,65 @@
|
||||
# 结伴客后端同步脚本 - Windows PowerShell版本
|
||||
# 同步文件到CentOS生产服务器
|
||||
# 服务器地址: www.jiebanke.com
|
||||
# 服务器目录: /data/nodejsjiebanke/
|
||||
|
||||
Write-Host "🚀 开始同步文件到生产服务器..." -ForegroundColor Green
|
||||
Write-Host "📋 服务器: www.jiebanke.com"
|
||||
Write-Host "📁 目标目录: /data/nodejsjiebanke/"
|
||||
Write-Host "📁 本地目录: e:\vue\jiebanke\backend\"
|
||||
Write-Host ""
|
||||
|
||||
# 检查rsync是否可用
|
||||
$rsyncAvailable = Get-Command rsync -ErrorAction SilentlyContinue
|
||||
if (-not $rsyncAvailable) {
|
||||
Write-Host "❌ rsync未安装,请先安装Git for Windows或Cygwin" -ForegroundColor Red
|
||||
Write-Host "💡 或者使用WSL中的rsync"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# 同步文件到服务器
|
||||
try {
|
||||
Write-Host "📤 正在同步文件..." -ForegroundColor Yellow
|
||||
|
||||
$rsyncArgs = @(
|
||||
"-avz",
|
||||
"--delete",
|
||||
"--exclude=node_modules/",
|
||||
"--exclude=logs/",
|
||||
"--exclude=uploads/",
|
||||
"--exclude=.git/",
|
||||
"--exclude=.env",
|
||||
"--exclude=*.log",
|
||||
"--exclude=*.tmp",
|
||||
"--exclude=.DS_Store",
|
||||
"--exclude=*.swp",
|
||||
"--exclude=*.swo",
|
||||
"-e", "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null",
|
||||
"e:/vue/jiebanke/backend/",
|
||||
"root@www.jiebanke.com:/data/nodejsjiebanke/"
|
||||
)
|
||||
|
||||
& rsync @rsyncArgs
|
||||
|
||||
if ($LASTEXITCODE -eq 0) {
|
||||
Write-Host "✅ 文件同步完成!" -ForegroundColor Green
|
||||
} else {
|
||||
Write-Host "❌ 文件同步失败,退出码: $LASTEXITCODE" -ForegroundColor Red
|
||||
exit $LASTEXITCODE
|
||||
}
|
||||
|
||||
# 设置文件权限
|
||||
Write-Host "🔧 设置文件权限..." -ForegroundColor Yellow
|
||||
ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null root@www.jiebanke.com "chmod 755 /data/nodejsjiebanke/*.sh && chmod 644 /data/nodejsjiebanke/package.json"
|
||||
|
||||
Write-Host ""
|
||||
Write-Host "✅ 同步完成!" -ForegroundColor Green
|
||||
Write-Host "📋 同步时间: $(Get-Date)"
|
||||
Write-Host "💡 接下来请在服务器上运行启动脚本:"
|
||||
Write-Host " ssh root@www.jiebanke.com"
|
||||
Write-Host " cd /data/nodejsjiebanke/ && ./start-server.sh"
|
||||
|
||||
} catch {
|
||||
Write-Host "❌ 同步过程中发生错误: $($_.Exception.Message)" -ForegroundColor Red
|
||||
exit 1
|
||||
}
|
||||
58
backend/scripts/sync-to-server.sh
Normal file
58
backend/scripts/sync-to-server.sh
Normal file
@@ -0,0 +1,58 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 结伴客后端同步脚本 - 同步文件到CentOS生产服务器
|
||||
# 服务器地址: www.jiebanke.com
|
||||
# 服务器目录: /data/nodejsjiebanke/
|
||||
|
||||
set -e
|
||||
|
||||
# 配置参数
|
||||
SERVER="www.jiebanke.com"
|
||||
SERVER_USER="root"
|
||||
SERVER_DIR="/data/nodejsjiebanke/"
|
||||
LOCAL_DIR="e:/vue/jiebanke/backend/"
|
||||
|
||||
# 需要排除的文件和目录
|
||||
EXCLUDE_LIST=(
|
||||
"--exclude=node_modules/"
|
||||
"--exclude=logs/"
|
||||
"--exclude=uploads/"
|
||||
"--exclude=.git/"
|
||||
"--exclude=.env"
|
||||
"--exclude=*.log"
|
||||
"--exclude=*.tmp"
|
||||
"--exclude=.DS_Store"
|
||||
"--exclude=*.swp"
|
||||
"--exclude=*.swo"
|
||||
)
|
||||
|
||||
echo "🚀 开始同步文件到生产服务器..."
|
||||
echo "📋 服务器: $SERVER"
|
||||
echo "📁 目标目录: $SERVER_DIR"
|
||||
echo "📁 本地目录: $LOCAL_DIR"
|
||||
echo ""
|
||||
|
||||
# 检查本地目录是否存在
|
||||
if [ ! -d "$LOCAL_DIR" ]; then
|
||||
echo "❌ 错误: 本地目录 $LOCAL_DIR 不存在"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 同步文件到服务器
|
||||
echo "📤 正在同步文件..."
|
||||
rsync -avz --delete \
|
||||
"${EXCLUDE_LIST[@]}" \
|
||||
-e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" \
|
||||
"$LOCAL_DIR" \
|
||||
"$SERVER_USER@$SERVER:$SERVER_DIR"
|
||||
|
||||
# 设置文件权限
|
||||
echo "🔧 设置文件权限..."
|
||||
ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null \
|
||||
"$SERVER_USER@$SERVER" \
|
||||
"chmod 755 $SERVER_DIR/*.sh && chmod 644 $SERVER_DIR/package.json"
|
||||
|
||||
echo ""
|
||||
echo "✅ 同步完成!"
|
||||
echo "📋 同步时间: $(date)"
|
||||
echo "💡 接下来请在服务器上运行启动脚本: cd $SERVER_DIR && ./start-server.sh"
|
||||
Reference in New Issue
Block a user