SpringBoot应用安装部署
Spring Boot应用部署文档
- 创建文件夹
mkdir -p /application
- 将打包好的应用上传到 /application 目录, 然后编写shell脚本
比如打包生成的是 bjgyol-gateway.jar 包, 需要编写一个 bjgyol-gateway.sh 脚本。注意 /data/application/logs/ 需要在应用中配置
```shell
#!/bin/bash
DATE=$(date +%Y-%m-%d)
JAVA_HOME=/usr/local/jdk1.8.0_261
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
# 应用所在目录
DIR=/application/
# 应用日志所在目录
LOGDIR=/data/application/logs/
# 日志文件名
LOGFILE=bjgyol-gateway
# 启动Jar包名称
JARFILE=bjgyol-gateway.jar
# Jar全路径
JARPATH=$DIR/bjgyol-gateway.jar
# 加密文件全路径
ENCRYPT_FILE_PATH=$DIR/secret/JasyptSecretKey.yml
# GC日志信息
GC_LOG_FILE_PATH=$LOGDIR/application/gc/
cd $DIR
ps -ef | grep $JARFILE | grep -v grep | awk '{print $2}' | xargs kill -9
nohup java -javaagent:/application/skywalking-agent/skywalking-agent.jar \
-Dskywalking.trace.ignore_path=/actuator/** \
-Dskywalking.agent.service_name=bjgyol-gateway \
-Dskywalking.collector.backend_service=192.159.51.13:11800 \
-jar -Dspring.profiles.active=prod $JARPATH \
--spring.config.additional-location=$ENCRYPT_FILE_PATH \
-XX:MetaspaceSize=256m \
-XX:MaxMetaspaceSize=256m \
-Xms4096m \
-Xmx4096m \
-Xmn256m \
-Xss256k \
-XX:SurvivorRatio=8 \
-XX:+PrintGCTimeStamps \
-XX:+PrintGCDetails \
-XX:+PrintClassHistogram \
-Xloggc:$GC_LOG_FILE/$LOGFILE-$DATE.log >/dev/null 2>&1 &
```
- 脚本编写完成后,赋予脚本可执行权限
chmod +x bjgyol-gateway.sh
- 启动应用
./bjgyol-gateway.sh
- 配置日志自动清理
编写shell脚本, /data/log_rotate.sh
```shell
#!/bin/bash
# 初始化
LOGS_PATH=/data/application/logs/application
for file in $LOGS_PATH/*
do
if test -f $file
then
echo $file
#find $file -mtime +15 -name '*[0-9]*-[0-9]*-[0-9]*' | xargs rm -f
else
find $file -mtime +15 -name '*[0-9]*-[0-9]*-[0-9]*' | xargs rm -f
fi
done
exit 0
```
- 添加脚本到 crontab 中, 每晚 00:00 自动执行, 清理 15 天之前的日志记录
# 执行 crontab -e # 输入 1 0 * * * /data/log_rotate.sh
- 历史版本备份到 /application/old/ 目录, 添加备份日期, 比如 /application/old/bjgyol-gateway-2021-07-13.jar
感谢您的反馈。如果您有关于如何使用 KubeSphere 的具体问题,请在 Slack 上提问。如果您想报告问题或提出改进建议,请在 GitHub 存储库中打开问题。
页面内容