62 lines
1.6 KiB
Bash
62 lines
1.6 KiB
Bash
|
|
#!/bin/bash
|
||
|
|
|
||
|
|
# 爱鉴花后端服务同步脚本
|
||
|
|
# 将本地代码同步到CentOS服务器
|
||
|
|
|
||
|
|
SERVER="www.jiebanke.com"
|
||
|
|
SERVER_USER="root"
|
||
|
|
SERVER_DIR="/data/nodejs/aijianhua"
|
||
|
|
LOCAL_DIR="e:/vue/aijianhua/backend"
|
||
|
|
|
||
|
|
# 需要排除的文件和目录
|
||
|
|
exclude_list=(
|
||
|
|
"--exclude=.env"
|
||
|
|
"--exclude=.env.development"
|
||
|
|
"--exclude=.env.example"
|
||
|
|
"--exclude=node_modules/"
|
||
|
|
"--exclude=uploads/"
|
||
|
|
"--exclude=database.sqlite"
|
||
|
|
"--exclude=*.log"
|
||
|
|
"--exclude=.git/"
|
||
|
|
"--exclude=.idea/"
|
||
|
|
"--exclude=*.bat"
|
||
|
|
"--exclude=*.sh"
|
||
|
|
)
|
||
|
|
|
||
|
|
echo "🚀 开始同步爱鉴花后端代码到服务器..."
|
||
|
|
echo "📁 服务器: $SERVER"
|
||
|
|
echo "📂 目标目录: $SERVER_DIR"
|
||
|
|
echo "📦 本地目录: $LOCAL_DIR"
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# 检查rsync是否安装
|
||
|
|
if ! command -v rsync &> /dev/null; then
|
||
|
|
echo "❌ rsync 未安装,请先安装 rsync"
|
||
|
|
echo "Ubuntu/Debian: sudo apt-get install rsync"
|
||
|
|
echo "CentOS/RHEL: sudo yum install rsync"
|
||
|
|
echo "macOS: brew install rsync"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
# 执行同步
|
||
|
|
rsync -avz --delete \
|
||
|
|
"${exclude_list[@]}" \
|
||
|
|
-e "ssh -p 22" \
|
||
|
|
"$LOCAL_DIR/" \
|
||
|
|
"$SERVER_USER@$SERVER:$SERVER_DIR/"
|
||
|
|
|
||
|
|
# 检查同步结果
|
||
|
|
if [ $? -eq 0 ]; then
|
||
|
|
echo ""
|
||
|
|
echo "✅ 同步完成!"
|
||
|
|
echo "📋 下一步操作:"
|
||
|
|
echo " 1. 登录服务器: ssh $SERVER_USER@$SERVER"
|
||
|
|
echo " 2. 进入目录: cd $SERVER_DIR"
|
||
|
|
echo " 3. 安装依赖: npm install --production"
|
||
|
|
echo " 4. 启动服务: pm2 start ecosystem.config.js"
|
||
|
|
echo " 5. 保存配置: pm2 save"
|
||
|
|
else
|
||
|
|
echo ""
|
||
|
|
echo "❌ 同步失败,请检查网络连接和服务器配置"
|
||
|
|
exit 1
|
||
|
|
fi
|