Java Springboot项目线上shell文件

Java Springboot项目,打成jar包后,上传到服务器上,可直接使用java -jar xxx.jar命令来启动项目。但考虑到application.properties/yaml配置文件,使用外部的文件的问题,日志输出位置的问题,使用指令就显得非常繁琐。

此时,应该写shell脚本文件,来辅助启动线上项目。
在这里插入图片描述

  • config目录存放application.properties/yaml配置文件
  • jar目录存放java项目的jar包
  • logs目录存放日志文件
  • shell文件与上述目录同级

根据上述目录结构,使用命令 sh xxx.sh 即可通过shell的方式启动Java项目。
例: sh 56_easyclean.sh

以基于springboot的"数据清洗"项目为例,编写如下shell脚本,供参考

#!/bin/bash
#服务端口
port=56090
#服务jar和log名称
server_name=easyclean-api
#服务配置文件名称
config_name=application-clean.yaml
temp_config_name=${config_name#*-}
spring_profiles_active=${temp_config_name%.*}
#当前时间
TIME=$(date "+%Y-%m-%d_%H:%M:%S")
#输入参数1:是否启动时打印日志,如果第一个参数是log,则会打印
log_flag=$1

echo =================================================
echo 'port='$port
echo 'server_name='${server_name}
echo 'config_name='${config_name}
echo 'spring_profiles_active='${spring_profiles_active}
echo 'log_flag='${log_flag}
echo =================================================
echo 

if [ ! -d "logs/" ];then
    mkdir logs
fi

for file in `ls jar/$server_name-*.jar`
do
    if [ -f "./$file"  ];then
        if [ -f "jar/$server_name.jar" ];then
            sh server_backup.sh jar/${server_name}.jar
        fi
        mv -f ${file} jar/${server_name}.jar
    fi
done

echo "正在停止服务"
ps axu |grep -v 'grep' |egrep "$port"|awk '{system("kill -9 "$2)}'

echo "正在启动服务"
nohup  java -Xms512M  -jar jar/${server_name}.jar --spring.config.location=config/${config_name}  --server.port=${port} >logs/${server_name}.log 2>&1 &

if [ "${log_flag}" = "log" ];then
    echo "正在打印日志"
    tailf logs/${server_name}.log
fi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值