58 lines
1.4 KiB
Bash
58 lines
1.4 KiB
Bash
|
|
#!/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"
|