#!/bin/bash # 结伴客项目部署脚本 # 用于将项目部署到远程 CentOS 服务器 set -e # 遇到错误时退出 # 配置信息 REMOTE_HOST="1.13.156.49" REMOTE_USER="root" REMOTE_PASSWORD="Aiotjkl$743838" BACKEND_REMOTE_PATH="/data/nodejs/jiebanke" ADMIN_SYSTEM_REMOTE_PATH="/data/vue/jiebanke" WEBSITE_REMOTE_PATH="/data/website/jiebanke" # 颜色输出 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' # No Color echo -e "${GREEN}========== 结伴客项目部署脚本 ==========${NC}" # 检查是否提供了部署目标参数 if [ $# -eq 0 ]; then echo -e "${YELLOW}使用方法:${NC}" echo " ./deploy.sh all - 部署所有模块" echo " ./deploy.sh backend - 部署后端服务" echo " ./deploy.sh admin - 部署后台管理系统" echo " ./deploy.sh website - 部署官方网站" exit 1 fi # 检查rsync是否安装 check_rsync() { if ! command -v rsync &> /dev/null; then echo -e "${RED}错误: 未找到 rsync 命令,请先安装 rsync${NC}" exit 1 fi } # 部署后端服务 deploy_backend() { echo -e "${BLUE}正在部署后端服务到 $REMOTE_HOST:$BACKEND_REMOTE_PATH ...${NC}" # 检查rsync check_rsync # 同步文件到远程服务器 echo -e "${BLUE}正在同步文件到远程服务器...${NC}" rsync -avz --delete \ --exclude node_modules \ --exclude .git \ --exclude logs \ ../backend/ $REMOTE_USER@$REMOTE_HOST:$BACKEND_REMOTE_PATH/ echo -e "${GREEN}后端服务部署完成${NC}" } # 部署后台管理系统 deploy_admin_system() { echo -e "${BLUE}正在部署后台管理系统到 $REMOTE_HOST:$ADMIN_SYSTEM_REMOTE_PATH ...${NC}" # 检查rsync check_rsync # 同步文件到远程服务器 echo -e "${BLUE}正在同步文件到远程服务器...${NC}" rsync -avz --delete \ --exclude node_modules \ --exclude .git \ --exclude dist \ ../admin-system/ $REMOTE_USER@$REMOTE_HOST:$ADMIN_SYSTEM_REMOTE_PATH/ echo -e "${GREEN}后台管理系统部署完成${NC}" } # 部署官方网站 deploy_website() { echo -e "${BLUE}正在部署官方网站到 $REMOTE_HOST:$WEBSITE_REMOTE_PATH ...${NC}" # 检查rsync check_rsync # 同步文件到远程服务器 echo -e "${BLUE}正在同步文件到远程服务器...${NC}" rsync -avz --delete \ --exclude node_modules \ --exclude .git \ ../website/ $REMOTE_USER@$REMOTE_HOST:$WEBSITE_REMOTE_PATH/ echo -e "${GREEN}官方网站部署完成${NC}" } # 部署所有模块 deploy_all() { echo -e "${BLUE}开始部署所有模块...${NC}" deploy_backend deploy_admin_system deploy_website echo -e "${GREEN}所有模块部署完成${NC}" } # 根据参数执行相应操作 case $1 in "backend") deploy_backend ;; "admin") deploy_admin_system ;; "website") deploy_website ;; "all") deploy_all ;; *) echo -e "${RED}未知参数: $1${NC}" echo -e "${YELLOW}请使用: all, backend, admin, website${NC}" exit 1 ;; esac echo -e "${GREEN}========== 部署完成 ==========${NC}"