tomcat 管理腳本

公司應用是跑在tomcat裏邊的,tomcat每次重啓、查看日誌很不方便,所以簡單寫了個tomcat的管理腳本。

公司服務器上邊有兩個java應用,所以運行了兩個tomcat,所以腳本是針對兩個tomcat的管理。

 

腳本命名:tom

tomcat的端口:8300、8200

存放路徑:/bin/tom      同時不要忘了賦予執行權限(#chmod 755 tom)

使用方法:

Usage: $0 <stop|start|restart> <8200|8300>
  <stop>      stop tomcat
  <start>     start tomcat 
  <restart>   restart tomcat
  <log>      show tomcat log

 

這樣就能跟使用其他服務一樣在系統任何位置對tomcat 啓動、關閉、重啓、查看日誌了。

 

效果圖:

144606827.png

 

腳本內容如下:

 

#!/bin/bash
#author:    zywang
#date:      2013-07-18
#version:   v1.0
#function:  control tomcat sart|sotp|restart|show log
######global variable
NOW_TIME=`date +%F`
TOMCAT_PID=`ps aux|grep $2 2>/dev/null|grep '/usr/local/jrock1.6/bin/java'|grep -v grep|tr -s ' '|cut -d' ' -f2`
TOMCAT_THREE_START="/opt/data/venus-interface-7-3.0-8300/bin/startup.sh"
TOMCAT_TWO_START="/opt/data/fone-player-7-2.1-8200/bin/startup.sh"
TOMCAT_LOGNAME="${NOW_TIME}catalina.out"
TOMCAT_LOGPATH_THREE="/opt/data/venus-interface-7-3.0-8300/logs/"
TOMCAT_LOGPATH_TWO="/opt/data/fone-player-7-2.1-8200/logs/"
######function define
#進度條效果(引用前要先定義finial變量)
function EFFECT {
base=1
while [ $base -lt $finial ]
do
sleep 0.05
echo -n "."
base=$(($base+1))
done
echo -e "\e[0;32;1m[OK]\e[0m"
}
#關閉TOMCAT
function SHUT_TOM {
local finial=50
if [ -n ${TOMCAT_PID} ];then
echo " "
echo -en "\e[0;33;1mTOMCAT IS STOPPING\e[0m "
kill -9 ${TOMCAT_PID} 2>/dev/null
EFFECT
echo " "
else
echo -e "\e[0;33;1m TOMCAT DIDN'T RUN!!!\e[0m"
fi
}
#啓動TOMCAT3.0
function START_TOM_THREE {
local finial=100
${TOMCAT_THREE_START} >/dev/null
echo -en "\e[0;33;1mTOMCAT IS STARTING:\e[0m"
EFFECT
}
#啓動TOMCAT2.0
function START_TOM_TWO {
local finial=100
${TOMCAT_TWO_START} >/dev/null
echo -en "\e[0;33;1mTOMCAT IS STARTING:\e[0m"
EFFECT
}
#重啓TOMCAT3.0
function RESTART_THREE {
SHUT_TOM
START_TOM_THREE
}
#重啓TOMCATr2.0
function RESTART_TWO {
SHUT_TOM
START_TOM_TWO
}
#查看TOMCAT3.0日誌
function SHOW_LOG_THREE {
tail -f ${TOMCAT_LOGPATH_THREE}${TOMCAT_LOGNAME} 2>/dev/null
}
#查看TOMCATr2.0日誌
function SHOW_LOG_TWO {
tail -f ${TOMCAT_LOGPATH_TWO}${TOMCAT_LOGNAME} 2>/dev/mull
}
######excute process
if [ $# -ne 2 ];then
echo " "
echo -e "\e[0;33;1mUsage:$0 <stop|start|restart|log> <8200|8300>\e[0m"
echo " "
exit 1;
fi
if [ $1 != "stop" ] && [ $1 != "start" ] && [ $1 != "restart" ] && [ $1 != "log" ];then
echo " "
echo -e "\e[0;33;1m<PARAMETER1>is just <stop|start|restart|log>\e[0m"
echo " "
else
if [ $2 != "8300" ] && [ $2 != "8200" ];then
echo " "
echo -e "\e[0;33;1m<PARAMETER2>is just <8200|8300>\e[0m"
echo " "
fi
fi
case $1 in
"stop")
if [ -z ${TOMCAT_PID} ];then
echo "TOMCAT DIDN'T RUN ..."
else
SHUT_TOM
fi
;;
"start")
if [ $2 -eq "8300" ];then
if [ -z ${TOMCAT_PID} ];then
START_TOM_THREE
else
echo "TOMCAT IS RUNNING ..."
fi
else
if [ -z ${TOMCAT_PID} ];then
START_TOM_TWO
else
echo "TOMCAT IS RUNNING ..."
fi
fi
;;
"restart")
if [ $2 -eq "8300" ];then
RESTART_THREE
else
RESTART_TWO
fi
;;
"log")
if [[ $2 == "8300" ]];then
SHOW_LOG_THREE
elif [[ $2 == "8200" ]];then
SHOW_LOG_TWO
else
echo "Please Check!!!"
fi
;;
"-h"|"--help")
cat <<EOF
Usage: $0 <stop|start|restart> <8200|8300>
<stop>      stop tomcat
<start>       start tomcat
<restart>   restart tomcat
<log>         show tomcat log
EOF
;;
*)
echo " "
echo "Please use: $0 -h or --help  for more information"
echo " "
;;
esac

 

我自己感覺用起來還挺方便的,如有問題希望大家批評指正!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章