205 lines
4.8 KiB
Bash
205 lines
4.8 KiB
Bash
#!/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 ""
|