peixue-dev/peidu/Archive/一次性文件/[一次性]远程服务器配置部署脚本-2026-01-26.sh

205 lines
4.8 KiB
Bash
Raw Permalink 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
# ========================================
# 远程服务器配置部署脚本
# 用途: 更新application.yml配置并重启服务
# ========================================
APP_DIR=/www/wwwroot/px.ddn-ai.cloud/jar
CONFIG_FILE=$APP_DIR/application.yml
echo "========================================"
echo "远程服务器配置部署"
echo "========================================"
# 1. 备份旧配置
if [ -f "$CONFIG_FILE" ]; then
echo "备份旧配置..."
cp $CONFIG_FILE $CONFIG_FILE.backup.$(date +%Y%m%d_%H%M%S)
fi
# 2. 创建新配置
echo "创建新配置文件..."
cat > $CONFIG_FILE << 'EOF'
# ========================================
# 陪读服务后端配置 - 生产环境
# ========================================
server:
port: 8089
servlet:
context-path: /
tomcat:
uri-encoding: UTF-8
spring:
application:
name: peidu-backend
profiles:
active: prod
mvc:
pathmatch:
matching-strategy: ant_path_matcher
servlet:
multipart:
max-file-size: 10MB
max-request-size: 10MB
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8
http:
encoding:
charset: UTF-8
enabled: true
force: true
datasource:
url: ${SPRING_DATASOURCE_URL}
username: ${DB_USERNAME}
password: ${DB_PASSWORD}
driver-class-name: com.mysql.cj.jdbc.Driver
hikari:
minimum-idle: 5
maximum-pool-size: 20
connection-timeout: 30000
idle-timeout: 600000
max-lifetime: 1800000
mybatis-plus:
mapper-locations: classpath*:/mapper/**/*.xml
type-aliases-package: com.peidu.entity
configuration:
map-underscore-to-camel-case: true
cache-enabled: false
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
global-config:
db-config:
id-type: auto
logic-delete-field: deleted
logic-delete-value: 1
logic-not-delete-value: 0
logging:
level:
com.peidu: info
root: info
pattern:
console: '%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} - %msg%n'
file:
name: /www/wwwroot/px.ddn-ai.cloud/jar/logs/app.log
# ========================================
# 文件上传配置 (关键配置)
# ========================================
file:
upload:
mode: local
local-path: /www/wwwroot/px.ddn-ai.cloud/Image/
url-prefix: https://px.ddn-ai.cloud/uploads/
allowed-types: jpg,jpeg,png,gif,bmp,webp,pdf,doc,docx,xls,xlsx
max-size: 10
jwt:
secret: ${JWT_SECRET}
expiration: 604800
wx:
appid: ${WX_APPID}
secret: ${WX_SECRET}
wechat:
pay:
appid: ${WX_PAY_APPID}
mchid: ${WX_PAY_MCHID}
key: ${WX_PAY_KEY}
cert-path: classpath:cert/apiclient_cert.p12
notify-url: https://px.ddn-ai.cloud/api/payment/notify/wechat
sms:
skip-send: false
aliyun:
access-key-id: ${ALIYUN_SMS_ACCESS_KEY}
access-key-secret: ${ALIYUN_SMS_ACCESS_SECRET}
sign-name: ${SMS_SIGN_NAME}
template-code: ${SMS_TEMPLATE_VERIFY_CODE}
region: cn-hangzhou
aliyun:
oss:
endpoint: ${ALIYUN_OSS_ENDPOINT:}
access-key-id: ${ALIYUN_OSS_ACCESS_KEY:}
access-key-secret: ${ALIYUN_OSS_ACCESS_SECRET:}
bucket-name: ${ALIYUN_OSS_BUCKET:}
domain: ${ALIYUN_OSS_DOMAIN:}
EOF
echo "✅ 配置文件创建成功: $CONFIG_FILE"
# 3. 确保Image目录存在
IMAGE_DIR=/www/wwwroot/px.ddn-ai.cloud/Image
if [ ! -d "$IMAGE_DIR" ]; then
echo "创建图片目录..."
mkdir -p $IMAGE_DIR
chmod 755 $IMAGE_DIR
echo "✅ 图片目录创建成功: $IMAGE_DIR"
else
echo "✅ 图片目录已存在: $IMAGE_DIR"
fi
# 4. 停止旧服务
echo ""
echo "停止旧服务..."
if [ -f "$APP_DIR/app.pid" ]; then
OLD_PID=$(cat $APP_DIR/app.pid)
if ps -p $OLD_PID > /dev/null 2>&1; then
kill $OLD_PID
echo "等待服务停止..."
sleep 3
# 如果还没停止,强制杀死
if ps -p $OLD_PID > /dev/null 2>&1; then
kill -9 $OLD_PID
echo "强制停止服务"
fi
echo "✅ 旧服务已停止"
else
echo "旧服务已经停止"
fi
else
echo "未找到PID文件尝试查找进程..."
PIDS=$(ps aux | grep peidu-backend | grep -v grep | awk '{print $2}')
if [ ! -z "$PIDS" ]; then
echo "找到进程: $PIDS"
kill $PIDS
sleep 2
echo "✅ 旧服务已停止"
else
echo "未找到运行中的服务"
fi
fi
# 5. 启动新服务
echo ""
echo "启动新服务..."
cd $APP_DIR
bash start.sh
echo ""
echo "========================================"
echo "部署完成!"
echo "========================================"
echo ""
echo "查看启动日志:"
echo " tail -f $APP_DIR/logs/app.log"
echo ""
echo "查看配置:"
echo " cat $CONFIG_FILE"
echo ""
echo "测试上传接口:"
echo " curl -X POST https://px.ddn-ai.cloud/api/file/upload/direct -F 'file=@test.jpg'"
echo ""