700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Linux自定义shell脚本一键启停微服务jar包

Linux自定义shell脚本一键启停微服务jar包

时间:2022-12-16 13:01:23

相关推荐

Linux自定义shell脚本一键启停微服务jar包

Java项目在Linux系统中的部署通常是以tomcat等容器化的方式部署,或者jar包的形式直接运行。在自动化部署畅行的今天,仍然会有不少的公司采用手动部署的方式部署 jar 包。而微服务打包形成的诸多jar,和上线前后频繁的诸多升级部署操作,让负责项目的开发运维人员叫苦不迭,因此需要一套便捷的部署脚本,实现便捷的一键启停等操作。

1.常用的部署命令:

ps -ef |grep 服务名kill -9 PIDnohup java -jar 服务名 &tail -f nohup.out

2.一个简单的一键启停脚本

以下是单个服务的一键启停,如果是多个服务的启停,可以根据以下脚本进行拓展。

#!/bin/shport=8080 #端口jar_name=/app/test/test-admin.jar#运行脚本提示信息tips(){echo "-------------------------------------"echo ""echo "项目端口: ${port}"echo "项目地址: ${jar_name}"echo ""echo "你可以使用如下参数进行操作"echo "-status -查看当前项目运行状态"echo "-log -查看当前项目运行日志"echo "-start -启动当前项目"echo "-stop -停止当前项目"echo "-restart -重启当前项目"echo ""echo "-------------------------------------"}#查看状态status(){#查询端口的PIDpid=$( ps -ef |grep $jar_name |grep 'java -jar'|grep -v grep|awk '{print $2}')#判断端口是否被占用if [ -z "${pid}" ];thenecho "没有项目在运行"elseecho "项目正在运行中"fi}#启动项目start(){pid=$( ps -ef |grep $jar_name |grep 'java -jar'|grep -v grep|awk '{print $2}')if [ -z "${pid}" ];thenecho "正在启动......"nohup java -jar $jar_name > logs/catalina.out &elseecho "项目运行中或端口已被占用"fi}#停止项目stop(){pid=$( ps -ef |grep $jar_name |grep 'java -jar'|grep -v grep|awk '{print $2}')if [ -z "${pid}" ];thenecho "没有项目在运行,请先启动"elsekill -9 $pidecho "已杀死进程为 ${pid} 的应用"fi}#重启项目restart(){pid=$( ps -ef |grep $jar_name |grep 'java -jar'|grep -v grep|awk '{print $2}')echo "正在杀死端口 ${port} 的pid ${pid} 中..."if [ -z "${pid}" ];thenecho "项目未启动"elsekill -9 $pidfisleep 5 #睡眠五秒start #调用启动方法echo "项目重启成功!"}# 滚动打印日志printLog(){tail -f logs/catalina.out}#参数选项case "$1" in"-status")status;;"-start")start;;"-stop")stop;;"-log")printLog;;"-restart")restart;;*)tips;;esac

3.将文件转成unix格式

sed -i 's/\r$//' test.sh

4.给.sh文件授予可执行权限

chmod +x test.sh

5.脚本启停项目测试

./test.sh -start启动项目./test.sh -log 查看实时日志./test.sh -stop 停止项目

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。