shell脚本管理tomcat多实例

 

 

#!/bin/bash
#Debugging_model: sh -x $/tomcatall-manage.sh

# Date: 2021-03-08
# Author: GuoXinLong
# OS:CentOS Linux release 7.3 (Core)
# Function: tomcatall-manage
# Version: 1.1
# ANNOTATION: Create


#---------------------------  需先创建脚本初始化存放目录及日志  -----------------------
#mkdir -p /home/shell/Detection/bin
#-p:创建多级
#-------------------------------------------------------------------------------------


#+=================================================变量起始=========================================+


##variable
StartPath=(
'/home/tomcat1/bin/startup.sh'
'/home/tomcat2/bin/startup.sh'
'/home/tomcat3/bin/startup.sh'
'/home/tomcat4/bin/startup.sh'
'/home/tomcat5/bin/startup.sh'
'/home/tomcat6/bin/startup.sh'
'/home/tomcat7/bin/startup.sh'
)


StopPath=(
'/home/tomcat1/bin/shutdown.sh'
'/home/tomcat2/bin/shutdown.sh'
'/home/tomcat3/bin/shutdown.sh'
'/home/tomcat4/bin/shutdown.sh'
'/home/tomcat5/bin/shutdown.sh'
'/home/tomcat6/bin/shutdown.sh'
'/home/tomcat7/bin/shutdown.sh'
)


StatusPath=(
'tomcat1'
'tomcat2'
'tomcat3'
'tomcat4'
'tomcat5'
'tomcat6'
'tomcat7'
)

#GrepName数组内容不可换行
GrepName=(
'tomcat1|''tomcat2|''tomcat3|''tomcat4|''tomcat5|''tomcat6|''tomcat7'
)
PGN=${GrepName[@]}


Begin=0
#通过数组总数、以及expr计算循环结束数字编码
ArrayNum=${#StatusPath[@]}    #获取数组元素个数 
End=`expr $ArrayNum - 1`


#+=================================================变量起止=========================================+
#[start]
function start() {
echo "获取start数组元素个数:${#StartPath[@]}"
	for StartP in ${StartPath[@]}
	do
		$StartP	>>/dev/null 2>&1
	done
}

#[stop]
function stop() {
echo "获取stop数组元素个数:${#StopPath[@]}"
	for StopP in ${StopPath[@]}
	do
		$StopP	>>/dev/null 2>&1
		sleep 3
	done	
PidNum=`ps -ef |grep -v grep |grep -E $PGN |grep Djava |awk '{print $2}'`

		if [ "$PidNum" == "" ] ; then
			echo "----All-tomcat实例已经关闭----"
			exit 0
		else
			kill -9 $PidNum
			echo "----tomcat无法正常退出的实例已将进程强制杀死----"
		fi
}

#[status]
function status() {
echo "获取status数组元素个数:${#StatusPath[@]}"
	for((a=$Begin;a<=$End;a++));
	do

PidCount=`ps -ef |grep -v grep |grep ${StatusPath[$a]} |grep Djava |wc -l`

		if [ $PidCount -eq 0 ]; then	# =0
			echo "tomcat实例 {${StatusPath[$a]}} not running"
		elif [ $PidCount -eq 1 ]; then	# =1
			echo "tomcat实例 ${StatusPath[$a]} running"
		else
			echo "tomcat实例 ${StatusPath[$a]} error running"
		fi
	done
}

#[restart]
function restart() {
	for StopP in ${StopPath[@]}
	do
		$StopP	>>/dev/null 2>&1
		sleep 3
	done	
PidNum=`ps -ef |grep -v grep |grep -E $PGN |grep Djava |awk '{print $2}'`

		if [ "$PidNum" == "" ] ; then
			echo "----All-tomcat实例已经关闭----"	>>/dev/null 2>&1
		else
			kill -9 $PidNum
			echo "----tomcat无法正常退出的实例已将进程强制杀死----"	>>/dev/null 2>&1
		fi

	for StartP in ${StartPath[@]}
	do
		$StartP	>>/dev/null 2>&1
	done
}

case "$1" in
        start)
                start
        ;;
        stop)
                stop
        ;;
        status)
                status
        ;;
        restart)
                restart
        ;;
        * )
                echo "usage: $0 Please select a valid type {start|stop|status|restart}"
                exit 1
        ;;
esac

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值