公司应用是跑在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

 

我自己感觉用起来还挺方便的,如有问题希望大家批评指正!