MENU

tomcat批量管理脚本

2017 年 07 月 10 日 • 杂乱文章

最近有点感冒,略显尴尬。哈哈。嗯。。。大概说一下这个脚本的诞生背景吧。其实我们这里java容器一直用的是resin-4.0.47-pro版本,由于前段时间出现了兼容性问题,导致有些项目直接起不来,需要向resin下的lib目录下添加jar包才可以,最严重的开发大哥直接说resin这个版本不支持,而放到tomcat上面就可以正常跑。起初我是想升级resin到最新版本,但是问题随之而来,因为我们这里单点很少,几乎没有,做的都是集群,而resin必须是Pro版本才能做集群,Pro版本需要一个破解的jar包,新版破解包在网上根本找不到,所以,木办法,只能放弃它了。老的就继续用吧。

最后和我老大协商,打成了共识,以后新上服务器开始使用tomcat,系统也由之前的Debian系列换成了CentOS系列。哈哈哈,终于。。。。换CentOS了,总的来说,感觉tomcat比resin方便很多,就像是多实例,resin添加一个新实例就需要重新编译,而tomcat只需要复制出一份,端口改了就能用,做完一份,下次再部署,直接用现成的就可以了。但是tomcat批量管理就很蛋疼了,所以说,写个脚本吧,用来批量管理。

脚本内容

写的比较辣鸡,将就着看吧,总之能用,哈哈

#!/bin/sh
##############################################################
# File Name: all_tomcat.sh
# Version: V1.0
# Author: rj-bai
# Organization: blog.rj-bai.com
# Created Time : 2017-07-10 10:22:35
# Description:
##############################################################
export PATH=/usr/local/jdk1.7.0_79/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

#tomcat 安装目录
dir_tomcat=/usr/local/server

#tomcat 名称
tomcats=(
tomcat1
tomcat2
tomcat3
tomcat4
)

#输出信息
read -e -p "
    1 --> 启动全部tomcat
    2 --> 停止全部tomcat
    3 --> 检测全部tomcat pid
    4 --> 强制停止全部tomcat

    输入对应的--> 数字 <--:" com

#启动tomcat
function start_tomcat {
for i in ${tomcats[@]}
do
    echo -e  "------------> \033[0;31;1m $i \033[0m <----------------"
     ${dir_tomcat}/$i/bin/startup.sh
done
}

#停止tomcat
function stop_tomcat {
for i in ${tomcats[@]}
do
    echo -e  "------------> \033[0;31;1m $i \033[0m <----------------"
     ${dir_tomcat}/$i/bin/shutdown.sh
done
}

#检测tomcat pid
tomcat_pids=(`ps -ef|grep ${dir_tomcat}  |grep -v grep|awk -F ' ' '{print$2}'`)

# 输出 tomcat pid
function check_tomcatpid {
for i in ${tomcat_pids[@]}
do
    echo $i
done
}

#强制杀掉tomcat
function kill_tomcatpid_force {
for i in ${tomcat_pids[@]}
do
        kill -9 $i
done
}

# 指定选项
case $com in
1)
    echo "    启动全部tomcat ---start tomcat"
    start_tomcat
;;
2)
    echo "    停止全部tomcat ---stop tomcat"
    stop_tomcat
;;
3)
    echo "    检测全部tomcat pid"
    check_tomcatpid
;;
4)
    echo "    强制停止全部tomcat"
    kill_tomcatpid_force
;;
*)
    echo "    用法: sh $0  运行脚本后根据提示输入相对应的数字"        
esac

直接复制过去就可以用,使用方法就是输入1-4,各有各的功能,4选项慎用,kill -9,你懂的。需要改的只有两个地方,安装目录及tomcat名称,我的情况如下,所以写成这样。

20170710151102.png

运行脚本效果如下。

20170710151638.png

把脚本软连接到/usr/local/sbin/目录下,作用都懂,我就不说了。还有就是如果你的日志位置没有改,也是在$TOMCAT\_HOME/log下面,你在使用tail动态查看日志,如果执行这个脚本连tail也会一起杀了,解决办法就是修改脚本里面的grep排除参数,排除tail即可。再加一个grep感觉有点太长了,用egrep吧,譬如使用egrep -v "tail|grep"即可,如果不想输入数字,那就传参,用$1即可,不多BB了。

最后编辑于: 2018 年 12 月 10 日
返回文章列表 文章二维码 打赏
本页链接的二维码
打赏二维码