From fe51e87c17ee8f1cbc7dfdbf4576986a5408c77f Mon Sep 17 00:00:00 2001 From: zhangjf Date: Mon, 23 Feb 2026 15:08:04 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=B0=83=E6=95=B4=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E9=83=A8=E7=BD=B2=E8=84=9A=E6=9C=AC=20-=20=E5=90=AF=E5=8A=A8?= =?UTF-8?q?=E8=84=9A=E6=9C=AC=E8=B7=AF=E5=BE=84=E6=94=B9=E4=B8=BA=20bin=20?= =?UTF-8?q?=E7=9B=AE=E5=BD=95=20-=20=E5=8F=AA=E6=9B=B4=E6=96=B0=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1jar=E5=92=8Cfund-common*.jar=EF=BC=8C=E4=B8=8D?= =?UTF-8?q?=E5=86=8D=E5=85=A8=E9=87=8F=E8=A6=86=E7=9B=96lib=E7=9B=AE?= =?UTF-8?q?=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/deploy/deploy-service.sh | 73 ++++++++++++++++++++------------ 1 file changed, 46 insertions(+), 27 deletions(-) diff --git a/scripts/deploy/deploy-service.sh b/scripts/deploy/deploy-service.sh index a63c618..9d7e294 100755 --- a/scripts/deploy/deploy-service.sh +++ b/scripts/deploy/deploy-service.sh @@ -60,17 +60,19 @@ if [ "$DIR_EXISTS" != "yes" ]; then exit 1 fi -# 2. 备份旧版本lib目录 -log_info "备份旧版本lib目录..." -remote_exec "cd '$SERVICE_DEPLOY_PATH' && \ - mkdir -p backup && \ - BACKUP_NAME='lib_backup_\$(date +%Y%m%d_%H%M%S)' && \ - if [ -d 'lib' ]; then \ - cp -r lib backup/\$BACKUP_NAME; \ - echo '备份完成: '\$BACKUP_NAME; \ - else \ - echo 'lib目录不存在,跳过备份'; \ - fi" +# 2. 备份旧版本jar文件 +log_info "备份旧版本jar文件..." +remote_exec "cd '$SERVICE_DEPLOY_PATH/lib' && \ + mkdir -p ../backup && \ + BACKUP_NAME='jar_backup_\$(date +%Y%m%d_%H%M%S)' && \ + mkdir -p ../backup/\$BACKUP_NAME && \ + if [ -f '${SERVICE_NAME}*.jar' ]; then \ + cp ${SERVICE_NAME}*.jar ../backup/\$BACKUP_NAME/ 2>/dev/null; \ + fi && \ + if ls fund-common*.jar 1>/dev/null 2>&1; then \ + cp fund-common*.jar ../backup/\$BACKUP_NAME/ 2>/dev/null; \ + fi && \ + echo '备份完成: '\$BACKUP_NAME" # 3. 上传tar.gz文件 log_info "上传tar.gz文件..." @@ -78,8 +80,8 @@ TEMP_REMOTE_PATH="/tmp/${SERVICE_NAME}-$$.tar.gz" upload_file "$LOCAL_TAR" "$TEMP_REMOTE_PATH" log_info "上传完成" -# 4. 解压并更新lib目录 -log_info "解压并更新lib目录..." +# 4. 解压并更新jar文件 +log_info "解压并更新jar文件..." remote_exec " TEMP_DIR=\"/tmp/${SERVICE_NAME}_extract_\$\$\" mkdir -p \$TEMP_DIR @@ -90,24 +92,40 @@ remote_exec " EXTRACTED_DIR=\$(ls -d */ 2>/dev/null | head -1 | tr -d '/') if [ -n \"\$EXTRACTED_DIR\" ] && [ -d \"\$EXTRACTED_DIR/lib\" ]; then - # 停止服务(如果存在启动脚本) - if [ -f '$SERVICE_DEPLOY_PATH/stop.sh' ]; then - cd '$SERVICE_DEPLOY_PATH' && ./stop.sh + # 停止服务(使用bin目录下的脚本) + if [ -f '$SERVICE_DEPLOY_PATH/bin/stop.sh' ]; then + cd '$SERVICE_DEPLOY_PATH/bin' && ./stop.sh sleep 2 + echo '服务已停止' fi - # 删除旧lib目录 - rm -rf '$SERVICE_DEPLOY_PATH/lib' + # 只更新当前服务的jar和fund-common*.jar + echo '更新jar文件...' - # 复制新lib目录 - cp -r \"\$EXTRACTED_DIR/lib\" '$SERVICE_DEPLOY_PATH/' + # 删除旧的fund-common*.jar + rm -f '$SERVICE_DEPLOY_PATH/lib/fund-common'*.jar 2>/dev/null - echo 'lib目录更新完成' + # 复制新的fund-common*.jar + if ls \$EXTRACTED_DIR/lib/fund-common*.jar 1>/dev/null 2>&1; then + cp \$EXTRACTED_DIR/lib/fund-common*.jar '$SERVICE_DEPLOY_PATH/lib/' + echo 'fund-common jar 已更新' + fi - # 启动服务(如果存在启动脚本) - if [ -f '$SERVICE_DEPLOY_PATH/start.sh' ]; then - cd '$SERVICE_DEPLOY_PATH' && ./start.sh - echo '服务已重启' + # 删除旧的服务jar + rm -f '$SERVICE_DEPLOY_PATH/lib/${SERVICE_NAME}'*.jar 2>/dev/null + + # 复制新的服务jar + if ls \$EXTRACTED_DIR/lib/${SERVICE_NAME}*.jar 1>/dev/null 2>&1; then + cp \$EXTRACTED_DIR/lib/${SERVICE_NAME}*.jar '$SERVICE_DEPLOY_PATH/lib/' + echo '${SERVICE_NAME} jar 已更新' + fi + + echo 'jar文件更新完成' + + # 启动服务(使用bin目录下的脚本) + if [ -f '$SERVICE_DEPLOY_PATH/bin/start.sh' ]; then + cd '$SERVICE_DEPLOY_PATH/bin' && ./start.sh + echo '服务已启动' fi else echo '错误: 解压后未找到lib目录' @@ -122,8 +140,9 @@ log_info "解压完成" # 5. 验证部署 log_info "验证部署..." -JAR_COUNT=$(remote_exec "ls '$SERVICE_DEPLOY_PATH/lib/*.jar' 2>/dev/null | wc -l") -log_info "lib目录jar文件数: $JAR_COUNT" +SERVICE_JAR_COUNT=$(remote_exec "ls '$SERVICE_DEPLOY_PATH/lib/${SERVICE_NAME}*.jar' 2>/dev/null | wc -l") +COMMON_JAR_COUNT=$(remote_exec "ls '$SERVICE_DEPLOY_PATH/lib/fund-common*.jar' 2>/dev/null | wc -l") +log_info "服务jar数: $SERVICE_JAR_COUNT, fund-common jar数: $COMMON_JAR_COUNT" log_info "============================================" log_info "服务部署完成: $SERVICE_NAME"