一键重启tomcat并自动清除work目录

创作背景

公司使用tomcat为中间件,每次替换重启要执行太多命令了,烦躁,就自己查询资料写了一个一键重启tomcat并自动清除work目录,有懂得大佬帮忙给提点改进意见。

脚本源码

#!/bin/sh
#==================================
#author by lizhongnian
#2019年6月5日
#将此脚本放入tomcat下的bin目录下
#==================================

#定义要处理的tomcat路径
TomcatPath=$(dirname $(dirname $(readlink -f "$0")))
##定义常用属性
Green_font_prefix="\033[32m" && Red_font_prefix="\033[31m" && Green_background_prefix="\033[42;37m" && Red_background_prefix="\033[41;37m" && Font_color_suffix="\033[0m"
Info="${Green_font_prefix}[信息]${Font_color_suffix}"
Error="${Red_font_prefix}[错误]${Font_color_suffix}"
Tip="${Green_font_prefix}[注意]${Font_color_suffix}"
if [ -z "$TomcatPath" ];then
        echo -e "${Error}:获取到的路径为空!"
        exit
else
        echo "${Info}:你的tomcat路径为:$TomcatPath"
fi

#获取对应tomcat PID
unset pid
pid=$(ps -ef | grep $TomcatPath | grep java | grep -v grep | awk '{print $2}')

#判断是否有正在运行的tomcat进程
if [ ! -n "$pid" ] ; 
then 
echo -e "${Error}:获取pid失败,退出执行"
exit 
else
echo -e "${Info} pid=${pid}"
fi 
#确认有对应的tomcat进程,先进入tomcat的bin目录,使用shutdown停止任务
bash $TomcatPath/bin/shutdown.sh
#等待3s
echo -e "${Info}:执行shutdown,等待3s后继续" 
sleep 3
#第二次检测是否有正在运行的tomcat进程
unset pidTwo
pidTwo=$(ps -ef | grep $TomcatPath | grep java | grep -v grep | awk '{print $2}')
if [ ! -n "$pidTwo" ] ;  
then 
echo -e "${Info}:使用shutdown停止任务成功" 
else
echo -e "${Error}:使用shutdown停止任务失败,即将kill tomcat进程"

length=${echo $pidTwo | awk '{ print $2; }'}
if [ "$length" != "" ];then
        echo "获取到多个pid,退出执行"
        exit
else
        kill -9 $pidTwo
		echo -e "${Info}:tomcat进程停止成功" 
fi
fi 

work_path=$TomcatPath/work/
current_path="$PWD"
cd $work_path
if [ -e Catalina ];then
        rm -rf *
else
        echo "${Tip}:Catalina已经为空了"
fi

echo -e "${Info}:Catalina目录清理成功!" 
cd $current_path
echo -e "${Info}:正在执行启动!" 
bash $TomcatPath/bin/startup.sh
pidNew=$(ps -ef | grep $TomcatPath | grep java | grep -v grep | awk '{print $2}')
echo -e "${Info}:启动成功,重启之后的tomcat进程号为$pidNew" 
stty erase '^H' && read -p " 是否直接打印日志(yes/y:继续;no/n:退出;回车默认打印):" status
case "$status" in
	yes|y)
	echo -e "${Info} 您选择了打印日志!"
	tail -f $TomcatPath/logs/catalina.out 
	;;
	no|n)
	echo -e "${Tip} 您选择了不打印日志!" && exit 1
	;;
	*)
	echo -e "${Info} 您选择了打印日志!"
	tail -f $TomcatPath/logs/catalina.out 
	;;
esac

使用教程

复制上方代码,到服务器tomcat的bin目录下新建一个restart.sh的文件。将代码复制进去,保存。
然后给代码赋予运行权限

chmod +x restart.sh

使用就是执行

./restart.sh

或者

bash restart.sh

效果图:
在这里插入图片描述

说明

此脚本命令多数为本人在网上查询的,都是些基本命令,备注也很清楚,非常适合初学者学习,也希望能有大佬提供一下改进意见。

原文地址:https://www.7colorblog.com/?id=75
本人博客:https://www.7colorblog.com/
七彩杂货铺:https://faka.7colorblog.com/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值