From d5439323db7a8b502c491d5111b09a9243652f04 Mon Sep 17 00:00:00 2001 From: apple Date: Wed, 18 Mar 2026 11:52:23 +0800 Subject: [PATCH] =?UTF-8?q?shccd159:=20=E6=96=B0=E5=A2=9E=20deploy-front-s?= =?UTF-8?q?hccd159.sh=EF=BC=8C=E6=9B=B4=E6=96=B0=20DEPLOY.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Made-with: Cursor --- backend/DEPLOY.md | 26 ++++++++- backend/shell/deploy-front-shccd159.sh | 81 ++++++++++++++++++++++++++ change-list-shjjy153.md | 2 +- 3 files changed, 105 insertions(+), 4 deletions(-) create mode 100755 backend/shell/deploy-front-shccd159.sh diff --git a/backend/DEPLOY.md b/backend/DEPLOY.md index 1eca8df..2ff8e14 100644 --- a/backend/DEPLOY.md +++ b/backend/DEPLOY.md @@ -143,14 +143,34 @@ cd backend --- -## 六、其他环境 +## 六、部署 miao-front(用户端 API) + +### shccd159 环境 + +```bash +cd backend +./shell/deploy-front-shccd159.sh +``` + +脚本步骤:编译 crmeb-front → **云服务器备份原有 jar** → 上传 jar → 远程重启。 + +使用其他密钥:`SSH_IDENTITY=~/.ssh/你的私钥 ./shell/deploy-front-shccd159.sh` + +**前置条件**:配置 SSH 免密,例如: +```bash +ssh-copy-id -i ~/.ssh/id_ed25519_crmeb_deploy.pub root@182.92.78.159 +``` + +--- + +## 七、其他环境 - **miao50**:使用 `./shell/deploy-admin-miao50.sh`,逻辑类似,配置来自 deploy.conf 中 miao50 段。 - **shjjy153**:deploy.conf 中配置了 `REMOTE_DIR_FRONT`,可扩展脚本上传 single_uniapp22miao 的 H5 构建产物到该目录。 --- -## 七、远程服务器手动重启 +## 八、远程服务器手动重启 ### 重启 admin(miao-admin-2.2.jar) @@ -176,7 +196,7 @@ pgrep -f miao-front-2.2.jar && echo "Front 已启动" --- -## 八、故障排查 +## 九、故障排查 - **SSH Permission denied**:检查 `ssh-copy-id` 是否成功,或指定正确 `SSH_IDENTITY`。 - **前端构建 OpenSSL 报错**:设置 `export NODE_OPTIONS="--openssl-legacy-provider"`。 diff --git a/backend/shell/deploy-front-shccd159.sh b/backend/shell/deploy-front-shccd159.sh new file mode 100755 index 0000000..bafeae0 --- /dev/null +++ b/backend/shell/deploy-front-shccd159.sh @@ -0,0 +1,81 @@ +#!/bin/bash +# 编译并部署 miao-front(用户端 API)到 shccd159 云服务器 +# 部署前在云服务器上备份原有 jar +# 使用: ./shell/deploy-front-shccd159.sh(在 backend 目录下) +# 或指定密钥: SSH_IDENTITY=~/.ssh/your_key ./shell/deploy-front-shccd159.sh + +set -e +ENV_NAME="shccd159" +SSH_IDENTITY="${SSH_IDENTITY:-$HOME/.ssh/id_ed25519_crmeb_deploy}" +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +BACKEND_DIR="$(cd "$SCRIPT_DIR/.." && pwd)" +DEPLOY_CONF="$BACKEND_DIR/deploy.conf" + +# 解析 shccd159 段配置(从 shccd159 到文件末尾) +get_conf() { + sed -n '/^shccd159:/,$p' "$DEPLOY_CONF" | grep -E "^${1}=" | tail -1 | cut -d= -f2- +} +SERVER_HOST=$(get_conf SERVER_HOST) +SERVER_USER=$(get_conf SERVER_USER) +SERVER_PORT=$(get_conf SERVER_PORT) +REMOTE_DIR_JAR=$(get_conf REMOTE_DIR_JAR) +FRONT_JAR_NAME=$(get_conf FRONT_JAR_NAME) +FRONT_LOCAL_PORT=$(get_conf FRONT_LOCAL_PORT) +SPRING_PROFILE="${ENV_NAME}" + +[[ -z "$SERVER_HOST" ]] && SERVER_HOST=182.92.78.159 +[[ -z "$REMOTE_DIR_JAR" ]] && REMOTE_DIR_JAR=/www/wwwroot/javaapi +[[ -z "$FRONT_JAR_NAME" ]] && FRONT_JAR_NAME=miao-front-2.2.jar +[[ -z "$FRONT_LOCAL_PORT" ]] && FRONT_LOCAL_PORT=30031 +[[ -z "$SERVER_USER" ]] && SERVER_USER=root +[[ -z "$SERVER_PORT" ]] && SERVER_PORT=22 + +JAR_PATH="$BACKEND_DIR/crmeb-front/target/$FRONT_JAR_NAME" +REMOTE_JAR="$REMOTE_DIR_JAR/$FRONT_JAR_NAME" +[[ -f "$SSH_IDENTITY" ]] && SSH_OPTS=(-o "IdentityFile=$SSH_IDENTITY") || SSH_OPTS=() +SSH_CMD=(ssh "${SSH_OPTS[@]}" -o StrictHostKeyChecking=accept-new -p "$SERVER_PORT" "$SERVER_USER@$SERVER_HOST") +SCP_CMD=(scp "${SSH_OPTS[@]}" -o StrictHostKeyChecking=accept-new -P "$SERVER_PORT") + +BACKUP_SUFFIX="backup_$(date +%Y%m%d_%H%M%S)" + +echo "=== 部署 miao-front(用户端 API)到 $ENV_NAME 云服务器 ===" +echo " 服务器: $SERVER_USER@$SERVER_HOST" +echo " 目标目录: $REMOTE_DIR_JAR" +echo " Profile: $SPRING_PROFILE" +echo "" + +echo "=== 1. 编译 crmeb-front(miao-front-2.2.jar)===" +cd "$BACKEND_DIR" +mvn clean package -pl crmeb-front -am -DskipTests -q +echo "已生成: $JAR_PATH" +[[ ! -f "$JAR_PATH" ]] && { echo "错误: jar 未生成"; exit 1; } + +echo "" +echo "=== 2. 云服务器备份原有 jar ===" +"${SSH_CMD[@]}" "bash -s" << REMOTE_BACKUP +set -e +mkdir -p "$REMOTE_DIR_JAR/backups" +if [ -f "$REMOTE_JAR" ]; then + cp -a "$REMOTE_JAR" "$REMOTE_DIR_JAR/backups/${FRONT_JAR_NAME}.${BACKUP_SUFFIX}" + echo "已备份: $REMOTE_DIR_JAR/backups/${FRONT_JAR_NAME}.${BACKUP_SUFFIX}" +else + echo "远程无原有 jar,跳过备份" +fi +REMOTE_BACKUP + +echo "" +echo "=== 3. 上传 $FRONT_JAR_NAME 到 $REMOTE_DIR_JAR ===" +"${SCP_CMD[@]}" "$JAR_PATH" "$SERVER_USER@$SERVER_HOST:$REMOTE_DIR_JAR/" +echo "jar 上传完成." + +echo "" +echo "=== 4. 远程重启 miao-front 服务 (profile=$SPRING_PROFILE, port=$FRONT_LOCAL_PORT) ===" +"${SSH_CMD[@]}" "cd $REMOTE_DIR_JAR && \ + (pkill -f $FRONT_JAR_NAME || true) && \ + sleep 2 && \ + nohup java -Xms128m -Xmx256m -jar $FRONT_JAR_NAME --spring.profiles.active=$SPRING_PROFILE --server.port=$FRONT_LOCAL_PORT > front.log 2>&1 & \ + sleep 3 && \ + (pgrep -f $FRONT_JAR_NAME && echo 'miao-front 已启动' || (echo '启动可能失败,请检查 front.log'; tail -20 front.log))" + +echo "" +echo "=== miao-front 部署完成 ===" diff --git a/change-list-shjjy153.md b/change-list-shjjy153.md index 42326df..8a3e24e 100644 --- a/change-list-shjjy153.md +++ b/change-list-shjjy153.md @@ -154,4 +154,4 @@ ## 备注 -本分支是基于 shccd159 分支的进一步开发,主要针对 jjy 项目进行定制化配置和功能优化。 +本分支是基于 shjjy153 分支的进一步开发,主要针对 jjy 项目进行定制化配置和功能优化。