#!/bin/bash # ============================================ # 管理后台部署脚本 # 用法: ./deploy-admin.sh [本地zip文件路径] # ============================================ SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" source "$SCRIPT_DIR/deploy-config.sh" # 获取本地zip文件路径 if [ -n "$1" ]; then LOCAL_ZIP="$1" else # 默认使用deploy目录下的fund-admin.zip LOCAL_ZIP="$LOCAL_DEPLOY_DIR/$LOCAL_ADMIN_ZIP" fi log_info "============================================" log_info "管理后台部署开始" log_info "============================================" log_info "本地文件: $LOCAL_ZIP" log_info "远程路径: $ADMIN_DEPLOY_PATH" log_info "" # 检查sshpass check_sshpass # 检查本地文件是否存在 if [ ! -f "$LOCAL_ZIP" ]; then log_error "本地zip文件不存在: $LOCAL_ZIP" exit 1 fi # 显示文件大小 FILE_SIZE=$(ls -lh "$LOCAL_ZIP" | awk '{print $5}') log_info "文件大小: $FILE_SIZE" # 1. 备份旧版本 log_info "备份旧版本..." remote_exec "if [ -d '$ADMIN_DEPLOY_PATH' ]; then \ mkdir -p '$ADMIN_DEPLOY_PATH/../backup'; \ BACKUP_NAME='fadmin_backup_\$(date +%Y%m%d_%H%M%S)'; \ mv '$ADMIN_DEPLOY_PATH' '$ADMIN_DEPLOY_PATH/../backup/\$BACKUP_NAME' 2>/dev/null || true; \ echo '备份完成: '\$BACKUP_NAME; \ fi" # 2. 创建新目录 log_info "创建新目录..." remote_exec "mkdir -p '$ADMIN_DEPLOY_PATH'" # 3. 上传zip文件 log_info "上传zip文件..." TEMP_REMOTE_PATH="/tmp/fund-admin-$$.zip" upload_file "$LOCAL_ZIP" "$TEMP_REMOTE_PATH" log_info "上传完成" # 4. 解压文件 log_info "解压文件..." remote_exec "cd '$ADMIN_DEPLOY_PATH' && unzip -o '$TEMP_REMOTE_PATH' && rm -f '$TEMP_REMOTE_PATH'" log_info "解压完成" # 5. 验证部署 log_info "验证部署..." FILE_COUNT=$(remote_exec "find '$ADMIN_DEPLOY_PATH' -type f | wc -l") log_info "部署文件数: $FILE_COUNT" log_info "============================================" log_info "管理后台部署完成!" log_info "============================================"