56 lines
2.2 KiB
Bash
Executable File
56 lines
2.2 KiB
Bash
Executable File
#!/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 "=== 部署完成 ==="
|