Files
jiebanke/backend/scripts/sync-to-server.ps1

65 lines
2.3 KiB
PowerShell
Raw Normal View History

2025-09-11 17:07:53 +08:00
# 结伴客后端同步脚本 - 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
}