泥:学习tomcat之通过shell批量管理几近单tomcat

本文由ilanniweb提供友情赞助,首发于腐化泥行天下

想如果博更多之章,可以关注本身的微信ilanniweb

号的事务是利用tomcat做web容器,为了更使得的下服务器的习性,我们一般配备多单tomcat做政工的负载均衡。

同等、业务需

眼前同一大服务器上,部署了4个tomcat,也就算相当给4单节点。平时于保安工作时,需要我们一个一个tomcat实例进行独立的保障,感觉格外无便宜,所以便出了立即首文章。

但为了重新便民的田间管理就4个tomcat,我立马边举行了点滴点的干活,一凡是管持有的tomcat工作目录都指向另外单独的一个索引下,二凡是透过shell来启动、关闭与重启tomcat。

PS:本次试验的测试OS为centos6.5
64bit,但是shell脚本也足以当ubuntu下用。

亚、修改tomcat工作目录

为不一个一个独的护卫tomcat实例,首先我们来窜tomcat实例的干活目录。所有的tomcat配置文件在conf目录下之server.xml文件。

咱才需要修改server.xml文件之appBase配置起,这样便可指定tomcat实例的做事目录。如下:

咱们要把每一个tomcat实例server.xml配置文件的appBase配置起,修改为/app/tomcat/apiwebapps。

如上修改完毕后,我们用创造/app/tomcat/apiwebapps目录。

mkdir -p
/app/tomcat/apiwebapps

tree -L 3
/app/

今天咱们可以查看node1为条例,查看该tomcat实例的目结构,如下:

tree -L 1
./node1

小心:这4只tomcat所监听的端口是殊之,否则无法起动tomcat。

有关tomcat的单机多实例,可以关押自己之下同样首文章《烂泥:学习tomcat之tomcat单机多实例》。

三、创建shell脚本

今昔自己是把4只tomcat实例都停放/app/tomcat目录下,
这4独tomcat实例目录名称分别吗node1、node2、node3、node4。
可以看出这4只tomcat实例的命名规则也node${i}。现在初步编制shell脚本。

3.1
新建ilanni.sh脚本

新建一个shell文件命名也
ilanni.sh,内容如下:

#!/bin/bash

# Apache Tomcat
daemon

# chkconfig: 345 10
10

# description: Apache
Tomcat daemon

# processname:
tomcat

echo ” 
______                           __   “

echo ” /_  __/___ 
____ ___  _________ _/ /_  “

echo ”  / / / __ \/
__  __ \/ ___/ __  / __/  “

echo ” / / / /_/ / / / /
/ / /__/ /_/ / /_    “

echo “/_/  \____/_/
/_/ /_/\___/\__,_/\__/    “

echo
”                                        “

#定义JAVA_HOME

export
JAVA_HOME=/usr/local/java/jdk1.7.0_80

#概念多单tomcat的终究目录,/app/tomcat目录下起node1、node2、node3、node4
四个tomcat实例。

tom=”/app/tomcat/node”

#概念启动脚本路径

startup_bin=”bin/startup.sh”

#概念tomcat的启动方式,启动方式啊tomcat.sh
p1 start类似的通令

usage=”{p1|p2|p3|all}
{start|stop|restart|status}”

dev=”/dev/null”

#概念如何启动tomcat,在此我们是经个数tomcat以及前定义之tomcat的下令,来操作tomcat

#judge $1 $2 whether
null

if [ “$1” == “” -o “$2”
== “” ];then

    echo

     echo “Usage: $0
$usage”

    echo

exit 1

fi

#judge $1

case $1 in

   “p1”)

    tomcats=”1″

;;

   “p2”)

    tomcats=”1 2″

;;

   “p3”)

    tomcats=”1 2 3″

;;

   “all”)

    tomcats=”1 2 3
4″

;;

   *)

   echo “Usage: $0
$usage”

;;

esac

#定义tomcat的启动

#define start
function

tomcatstart() {

for i in $tomcats

  do

 
tom_home=”$tom$i”

  run_status=$(ps -ef |
grep -v ‘grep’ | egrep “java.*=${tom_home}”)

if [ “${run_status}X” !=
“X” ];then

echo “node$i is already
running…”

else

${tom_home}/${startup_bin}
&>$dev

echo “node$i
starting,Please wait 2s…”

sleep 2

fi

done

}

#定义tomcat的关闭

#define stop
function

tomcatstop() {

for j in $tomcats

do

tom1_home=”$tom$j”

tomcat_pid=$(ps -ef |
grep ${tom1_home} | grep “org.apache.catalina.startup.Bootstrap start”
| awk ‘{printf $2}’)

if [ “${tomcat_pid}X” ==
“X” ];then

echo “node$j is not
running…”

else

kill -9 ${tomcat_pid} &
>$dev

echo “node$j
stopping,Please wait 1s…”

sleep 1

echo “delte node$j
cache,Please wait 1s…”

rm -rf
${tom1_home}/work/*

fi

done

}

#定义tomcat的重启

#define restart
function

tomcatrestart() {

for m in $tomcats

do

tom2_home=”$tom$m”

run2_status=$(ps -ef |
grep -v ‘grep’ | egrep “java.*=${tom2_home}”)

if [ “${run2_status}X”
== “X” ];then

echo “node$m is not
running…”

${tom2_home}/${startup_bin}
&>$dev

echo “node$m
starting,Please wait 2s…”

sleep 2

else

ps -ef | grep
${tom2_home} | grep “org.apache.catalina.startup.Bootstrap start” | awk
‘{printf $2}’| xargs kill -9 >$dev

echo “node$m
stopping,Please wait 2s…”

sleep 1

${tom2_home}/${startup_bin}
&>$dev

echo “node$m
starting,Please wait 2s…”

sleep 2

fi

done

}

#定义tomcat的状态

#define status
function

tomcatstatus() {

for n in $tomcats

do

tom3_home=”$tom$n”

run3_status=$(ps -ef |
grep -v ‘grep’ | egrep “java.*=${tom3_home}”)

if [ “${run3_status}X”
== “X” ];then

echo “node$n is not
running…”

else

echo “node$n is
running”

fi

done

}

#judge $2

case $2 in

    “start”)

    tomcatstart

;;

    “stop”)

    tomcatstop

;;

   “restart”)

   tomcatrestart

;;

   “status”)

   tomcatstatus

;;

   *)

   echo “Usage: $0
$usage”

;;

esac

3.2
修改ilanni.sh文件权限

ilanni.sh脚本创建了后,现在咱们来修改ilanni.sh的尽权。如下:

chmod +x
ilanni.sh

季、启动与关tomcat

ilanni.sh权限修改完后,我们就算好来启动这4独tomcat实例了。比如现在想启动node1和node2这有限只实例,我们得透过以下命令来启动。

./ilanni.sh p2
start

./ilanni.sh p2
status

通过达成图,可以十分显著的收看实例node1、node2已经起步了。

tomcat启动后,如果只要停止的话语,我们得以动用如下命令:

./ilanni.sh p2
stop

透过上图,我们可看,我们曾经将实例node1、node2停少了,而且我们啊抹了实例node1、node2的复苏存。

如上我们是为启动两只tomcat实例为条例的,如果开行或关闭是一个、三单和所有tomcat实例的话语,我们得下如下命令。

./ilanni.sh p1
start

./ilanni.sh p3
start

./ilanni.sh all
start

当相应的闭馆、重开和查看状态令,分别如下。

关命令:

./ilanni.sh p1
stop

./ilanni.sh p3
stop

./ilanni.sh all
stop

翻状态令:

./ilanni.sh p1
status

./ilanni.sh p3
status

./ilanni.sh all
status

在意:该shell脚本只能以node1、node2、node3、node4等各个执行下去,不可知独立的已和开行tomcat实例,除node1外。

五、把ilanni脚本加入系服务

以操作更有利于,我们好拿ilanni.sh这个本子加入到系统服务受到。具体操作方法如下:

cp
ilanni.sh /etc/init.d/ilanni

chkconfig
–add /etc/init.d/ilanni

chkconfig
ilanni on

查阅是否业已补偿加进服务列表

chkconfig
–list |grep ilanni

长到服务后,
就足以这么坐劳动方式来启动暨停止、重开tomcat实例了。如下:

/etc/init.d/ilanni
p2 start

/etc/init.d/ilanni
p2 status

通过达成图,我们得以起,ilanni.sh脚本已经就是投入到网服务内部了。

到这有关经shell批量管理tomcat的文章就是结束了。

相关文章