增加一键化部署脚本

This commit is contained in:
LiGang 2023-11-04 10:11:40 +08:00
parent 4e8e6682e5
commit 78c94cbb0c
3 changed files with 212 additions and 1 deletions

210
bin/services.sh Normal file
View File

@ -0,0 +1,210 @@
#!/usr/bin/env bash
#可变参数变量
languageType="java" #支持 java,javac,netcore 发布
#参数值由pom文件传递
packageName= #命令启动包名 xx.jar的xx
#固定变量
#basePath=$(cd `dirname $0`/;cd ../;pwd)
baseDirPath="${basePath}" #解压部署磁盘路径
pid= #进程pid
#所有模块列表
modules=("beidou", "beidou-rtcm")
#模块变量
moduleName="${2}" #模块名
modulePath= #模块路径
packageModulePath= #打包模块路径
biz="sec-"
#配置文件路径
configPath="/root/beidou/config"
if [ "${moduleName}" == "beidou" ]
then
packageName="${biz}-${moduleName}"
modulePath="${baseDirPath}/${biz}-${moduleName}" #网关模块路径
packageModulePath="${biz}-${moduleName}"
elif [ "${moduleName}" == "beidou-rtcm" ]
then
packageName="${biz}-${moduleName}"
modulePath="${baseDirPath}/${biz}-${moduleName}" #网关模块路径
packageModulePath="${biz}-${moduleName}"
else
packageName="${biz}-${moduleName}"
modulePath="${baseDirPath}/${biz}-${moduleName}" #网关模块路径
packageModulePath="${biz}-${moduleName}"
fi
#检测pid
function getPid()
{
echo "检测状态---------------------------------------------"
pid=`ps -ef | grep -n ${packageName}.jar | grep -v grep | awk '{print $2}'`
if [ ${pid} ]
then
echo "运行pid${pid}"
else
echo "未运行"
fi
}
#启动程序
function start()
{
#查询是否有启动进程
getPid
if [ ${pid} ]
then
echo "程序已启动"
else
echo "启动程序---------------------------------------------"
#进入模块运行目录
cd ${modulePath}/target/
nohup java -Dfile.encoding=utf-8 -Xms128m -Xmx256m -jar ${packageName}.jar --spring.config.location=${configPath}/application-${moduleName}.properties --logging.config=${configPath}/logback-${moduleName}.xml >/dev/null 2>&1 &
#查询是否有启动进程
getPid
if [ ${pid} ]
then
echo "已启动"
else
echo "启动失败"
fi
fi
}
#停止程序
function stop()
{
getPid
if [ ${pid} ]
then
echo "停止程序---------------------------------------------"
kill -15 ${pid}
echo -n "停止中"
counter=0
while [ $counter -lt 1 ]
do
#getPid
pid=`ps -ef | grep -n ${packageName}.jar | grep -v grep | awk '{print $2}'`
if [ ${pid} ]
then
#停止失败
echo -n "..."
else
break
fi
sleep 2s
done
echo "success"
fi
}
#检查包名参数
function checkParam()
{
if [ ${moduleName} ]
then
echo -n ""
#echo "packageName:${packageName}"
else
echo "模块名参数未输入"
echo "所有模块列表:"
for modules in ${modules[@]}
do
echo -n $modules
done
echo " "
exit
fi
}
#启动时带参数,根据参数执行
if [ ${#} -ge 1 ]
then
case ${1} in
"start")
checkParam
start
;;
"stop")
checkParam
stop
;;
"restart")
checkParam
stop
start
;;
"status")
checkParam
ps -ef | grep -n ${packageName}.jar | grep -v grep
;;
"log")
checkParam
tail -n 50 -f ${configPath}/logs/${moduleName}.log
;;
"info")
ps aux | grep java | grep -E 'runjian|rundo|admin' | grep -v grep
;;
"killall")
echo "杀掉所有模块进程"
ps -ef | grep sec | grep -v grep | awk '{print $2}' | xargs kill -15
;;
"info")
ps aux | grep java | grep -E 'sec' | grep -v grep
;;
"package")
checkParam
cd ${baseDirPath}
echo "打包单个模块"
mvn clean package -pl ${packageModulePath} -am -D"maven.test.skip=true"
;;
"packageAll")
echo "打包所有模块"
cd ${baseDirPath}
mvn clean package -D"maven.test.skip=true"
;;
"update")
checkParam
echo "更新代码并重新部署"
cd ${baseDirPath}
git pull
mvn clean package -pl ${packageModulePath} -am -D"maven.test.skip=true"
stop
start
;;
*)
echo "${1}无任何操作"
;;
esac
else
echo "
command如下命令
start启动
stop停止进程
restart重启
status查看模块状态
log查看模块日志
info查看所有模块进程
killall杀掉所有模块进程
package打包单个模块
packageAll打包所有模块
update: 更新代码并部署
示例命令如:./services.sh start beidou
所有模块列表:"
echo -n " "
for modules in ${modules[@]}
do
echo -n $modules
done
echo " "
fi

View File

@ -134,7 +134,7 @@
</dependencies> </dependencies>
<build> <build>
<finalName>sideslope-rtcm-server</finalName> <finalName>${project.artifactId}</finalName>
<plugins> <plugins>
<plugin> <plugin>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>

View File

@ -147,6 +147,7 @@
</dependencies> </dependencies>
<build> <build>
<finalName>${project.artifactId}</finalName>
<plugins> <plugins>
<plugin> <plugin>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>