Files
integral-shop/backend/shell/deploy-admin-miao50.sh
2026-03-08 18:35:11 +08:00

56 lines
2.2 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# 编译 crmeb-admin、上传并重启 miao50 服务器上的 admin 服务(全自动,需先做一次性免密配置)
# 一次性配置: ssh-copy-id -i ~/.ssh/id_ed25519_crmeb_deploy.pub root@101.37.253.50
# 使用: ./deploy-admin-miao50.sh
set -e
SSH_IDENTITY="${SSH_IDENTITY:-$HOME/.ssh/id_ed25519_crmeb_deploy}"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
DEPLOY_CONF="$PROJECT_DIR/deploy.conf"
# 解析 miao50 配置deploy.conf 中 miao50 段的 KEY=value
get_conf() {
grep -E "^${1}=" "$DEPLOY_CONF" | 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=$(get_conf REMOTE_DIR)
ADMIN_JAR_NAME=$(get_conf ADMIN_JAR_NAME)
ADMIN_LOCAL_PORT=$(get_conf ADMIN_LOCAL_PORT)
# 若未读到(可能不是 miao50 段),使用默认
[[ -z "$SERVER_HOST" ]] && SERVER_HOST=101.37.253.50
[[ -z "$REMOTE_DIR" ]] && REMOTE_DIR=/www/wwwroot/crmeb
[[ -z "$ADMIN_JAR_NAME" ]] && ADMIN_JAR_NAME=miao-admin-2.2.jar
[[ -z "$ADMIN_LOCAL_PORT" ]] && ADMIN_LOCAL_PORT=30032
[[ -z "$SERVER_USER" ]] && SERVER_USER=root
[[ -z "$SERVER_PORT" ]] && SERVER_PORT=22
JAR_PATH="$PROJECT_DIR/crmeb-admin/target/$ADMIN_JAR_NAME"
REMOTE_JAR="$REMOTE_DIR/$ADMIN_JAR_NAME"
echo "=== 1. 编译 crmeb-admin ==="
cd "$PROJECT_DIR"
mvn clean package -pl crmeb-admin -am -DskipTests -q
echo "已生成: $JAR_PATH"
echo ""
echo "=== 2. 上传到 $SERVER_USER@$SERVER_HOST:$REMOTE_DIR ==="
[[ -f "$SSH_IDENTITY" ]] && SSH_OPTS=(-o "IdentityFile=$SSH_IDENTITY") || SSH_OPTS=()
scp "${SSH_OPTS[@]}" -o StrictHostKeyChecking=accept-new -P "$SERVER_PORT" "$JAR_PATH" "$SERVER_USER@$SERVER_HOST:$REMOTE_DIR/"
echo "上传完成."
echo ""
echo "=== 3. 远程停止并重启 admin (profile=miao50, port=$ADMIN_LOCAL_PORT) ==="
ssh "${SSH_OPTS[@]}" -p "$SERVER_PORT" "$SERVER_USER@$SERVER_HOST" "cd $REMOTE_DIR && \
(pkill -f $ADMIN_JAR_NAME || true) && \
sleep 2 && \
nohup java -jar $ADMIN_JAR_NAME --spring.profiles.active=miao50 --server.port=$ADMIN_LOCAL_PORT > admin.log 2>&1 & \
sleep 3 && \
(pgrep -f $ADMIN_JAR_NAME && echo 'Admin 进程已启动' || echo '请检查 admin.log 启动是否失败')"
echo ""
echo "=== 部署完成 ==="