#!/bin/bash
#=====================================
#脚本名称:deploy.sh
#编写时间: 2019-07-23
#编辑人: izhixin
#最近修改时间:2019-07-31
#备注:杀死进程等待时间增加至30秒;
#增加kill -9 PID 强制关闭Tomcat进程;
#
#=====================================
#==========部署时间=================
DEPLOY_DATE=`date +%Y%m%d%H%M`
#==========变量=================
APP_ADDRESS=
BAK_ADDRESS=
SCRIPT_LOG=
#==========变量=================
WARNAME=
UPLOADWARNAME=
TOMCATPORT=
TOMCATADDRESS=
TOMCATWEBAPPS=
TOMCATBIN=
TOMCATLOGS=
WEBAPPSFILENAME=
WEBAPPSWARNAME=
PSINFO=`ps aux | grep java | grep ${TOMCATADDRESS}`
TOMCATPID=`ps aux | grep java | grep ${TOMCATADDRESS} | awk -F' ' '{print $2}'`
APP_NAME=deploy.sh
#=====================================
#===========程序开始==================
echo "***********BEGIN_${APP_NAME}_${DEPLOY_DATE}***********" >> ${SCRIPT_LOG}
if ! [ -d ${APP_ADDRESS} ];then
mkdir ${APP_ADDRESS}
fi
if ! [ -d ${BAK_ADDRESS} ];then
mkdir ${BAK_ADDRESS}
fi
if ! [ -e ${SCRIPT_LOG} ];then
touch ${SCRIPT_LOG}
fi
echo "${DEPLOY_DATE} $PSINFO" >> ${SCRIPT_LOG}
if ! [ -e ${UPLOADWARNAME} ];then
echo "Please upload WAR package"
exit 10
else
echo "${DEPLOY_DATE} ${WARNAME} is upload!!!" >> ${SCRIPT_LOG}
fi
if ! [ -d ${TOMCATADDRESS} ];then
echo "${TOMCATADDRESS} does not exist"
exit 11
fi
if [ "${TOMCATPID}" == "" ];then
echo "${TOMCATPID} is null!!!"
exit 12
fi
mv ${TOMCATLOGS}catalina.out ${TOMCATLOGS}catalina.out_${DEPLOY_DATE}
if ! kill ${TOMCATPID};then
echo "Kill ${TOMCATPID} failed"
exit 12
fi
sleep 30
TOMCATPID=`ps aux | grep java | grep ${TOMCATADDRESS} | awk -F' ' '{print $2}'`
if [ "${TOMCATPID}" != "" ];then
echo "First kill ${TOMCATPID} failed"
kill -9 ${TOMCATPID}
sleep 10
fi
echo "${DEPLOY_DATE} Kill ${TOMCATPID} process successfully!!!" >> ${SCRIPT_LOG}
mv ${WEBAPPSWARNAME} ${BAK_ADDRESS}war_bak_${TOMCATPORT}_${WARNAME}_${DEPLOY_DATE}
rm -rf ${WEBAPPSFILENAME}
mv ${UPLOADWARNAME} ${WEBAPPSWARNAME}
if ! [ -e ${WEBAPPSWARNAME} ];then
echo "Webbapps no package"
exit 13
fi
${TOMCATBIN}startup.sh
PSINFO=`ps aux | grep java | grep ${TOMCATADDRESS}`
echo "${DEPLOY_DATE} $PSINFO" >> ${SCRIPT_LOG}
sleep 10
tail -200 ${TOMCATLOGS}catalina.out
echo "***********END_${APP_NAME}_${DEPLOY_DATE}***********" >> ${SCRIPT_LOG}
exit 0