bug修复

This commit is contained in:
2025-10-26 23:26:30 +08:00
parent 85e910fac9
commit df818578e5
20 changed files with 2008 additions and 98 deletions
+73 -35
View File
@@ -18,6 +18,7 @@ REMOTE_HOST="101.200.208.45"
REMOTE_USER="root"
REMOTE_DIR="/data/programs/emotion-museum"
REMOTE_LOG_DIR="/data/logs/emotion-museum"
REMOTE_JAR_NAME="emotion-single-1.0.0.jar"
SPRING_PROFILE="test"
# 颜色输出
@@ -41,29 +42,30 @@ log_error() {
# 检查并构建项目
build_project() {
log_info "检查项目构建状态..."
# 检查是否已经构建过并且JAR文件存在
if [ -f "$JAR_PATH" ]; then
log_info "JAR 文件已存在: $JAR_PATH"
return 0
fi
# 执行Maven构建
log_info "开始构建项目..."
if command -v mvn > /dev/null 2>&1; then
mvn clean package -DskipTests
if [ -f "$JAR_PATH" ]; then
log_info "项目构建成功: $JAR_PATH"
return 0
else
log_error "项目构建失败,未找到JAR文件: $JAR_PATH"
exit 1
fi
else
# 检查 Maven 是否安装
if ! command -v mvn > /dev/null 2>&1; then
log_error "未找到Maven命令,请确保已安装Maven"
exit 1
fi
# 执行 Maven 构建
log_info "执行: mvn clean package -DskipTests"
if ! mvn clean package -DskipTests; then
log_error "项目构建失败"
exit 1
fi
# 检查 JAR 文件是否生成
if [ ! -f "$JAR_PATH" ]; then
log_error "项目构建失败,未找到JAR文件: $JAR_PATH"
log_error "请检查 Maven 构建输出"
exit 1
fi
log_info "✅ 项目构建成功: $JAR_PATH"
log_info "文件大小: $(ls -lh $JAR_PATH | awk '{print $5}')"
}
# 检查 jar 文件是否存在
@@ -138,34 +140,70 @@ start_local_service() {
# 远程部署 - 上传文件到服务器
deploy_to_remote() {
log_info "开始远程部署到 $REMOTE_HOST..."
# 检查并构建项目
build_project
# 检查 jar 文件
check_jar
# 创建远程目录
log_info "创建远程目录..."
ssh $REMOTE_USER@$REMOTE_HOST "mkdir -p $REMOTE_DIR"
ssh $REMOTE_USER@$REMOTE_HOST "mkdir -p $REMOTE_LOG_DIR"
# 上传 jar 文件
if ! ssh $REMOTE_USER@$REMOTE_HOST "mkdir -p $REMOTE_DIR"; then
log_error "创建远程目录失败: $REMOTE_DIR"
exit 1
fi
if ! ssh $REMOTE_USER@$REMOTE_HOST "mkdir -p $REMOTE_LOG_DIR"; then
log_error "创建远程日志目录失败: $REMOTE_LOG_DIR"
exit 1
fi
# 上传 jar 文件并重命名
log_info "上传 JAR 文件到远程服务器..."
scp "$JAR_PATH" $REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR/
log_info "本地文件: $JAR_PATH"
log_info "远程路径: $REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR/$REMOTE_JAR_NAME"
if ! scp "$JAR_PATH" $REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR/$REMOTE_JAR_NAME; then
log_error "上传 JAR 文件失败"
log_error "请检查:"
log_error " 1. SSH 连接是否正常: ssh $REMOTE_USER@$REMOTE_HOST 'ls -la $REMOTE_DIR'"
log_error " 2. 本地文件是否存在: ls -la $JAR_PATH"
log_error " 3. 远程目录权限: ssh $REMOTE_USER@$REMOTE_HOST 'ls -la $REMOTE_DIR'"
exit 1
fi
log_info "✅ JAR 文件上传成功"
# 验证远程文件
log_info "验证远程文件..."
if ! ssh $REMOTE_USER@$REMOTE_HOST "ls -lh $REMOTE_DIR/$REMOTE_JAR_NAME"; then
log_error "远程文件验证失败"
exit 1
fi
# 上传部署脚本
log_info "上传部署脚本到远程服务器..."
scp "./deploy-server.sh" $REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR/
if ! scp "./deploy-server.sh" $REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR/; then
log_error "上传部署脚本失败"
exit 1
fi
log_info "✅ 部署脚本上传成功"
# 设置权限
ssh $REMOTE_USER@$REMOTE_HOST "chmod +x $REMOTE_DIR/deploy-server.sh"
log_info "设置远程脚本权限..."
if ! ssh $REMOTE_USER@$REMOTE_HOST "chmod +x $REMOTE_DIR/deploy-server.sh"; then
log_error "设置脚本权限失败"
exit 1
fi
# 在远程服务器上执行部署
log_info "在远程服务器上执行部署..."
ssh $REMOTE_USER@$REMOTE_HOST "cd $REMOTE_DIR && ./deploy-server.sh $SPRING_PROFILE"
log_info "远程部署完成!"
if ! ssh $REMOTE_USER@$REMOTE_HOST "cd $REMOTE_DIR && ./deploy-server.sh $SPRING_PROFILE"; then
log_error "远程部署脚本执行失败"
exit 1
fi
log_info "✅ 远程部署完成!"
show_remote_info
}
# 本地部署 - 检查服务状态