Shell自动备份部署新项目(2)

优化了脚本,实现自动备份,自动重启Tomcat

#!/bin/bash
NEW_WAR="mobile.war"
PROJECT_NAME="tomcat-app1"
#当前目录
BASE_PATH=$(cd `dirname $0`; pwd)
echo "当前目录${BASE_PATH}"

#创建临时文件夹
tempDirName=`date "+%Y%m%d%H%M%S"`
tempDirName="bak/mobile-${tempDirName}"
echo "准备创建临时文件夹:${tempDirName}"
`mkdir ${tempDirName}`

#停止Tomcat
cd /usr/tomcat/${PROJECT_NAME}/bin/
./shutdown.sh
echo "停止Tomcat..."
cd ${BASE_PATH}

#暂停4S等待Tomcat停止
sleep 4s

#杀掉Tomcat进程(如果还没停止的话)
PROCESS=`ps -ef|grep ${PROJECT_NAME}|grep -v grep|grep -v PPID|awk '{ print $2}'`
for i in ${PROCESS}  
do
  echo "终止进程 ${PROJECT_NAME} process id = [ ${i} ]"
  kill -9 ${i}
done

#移动war文件到临时文件夹
`mv /usr/tomcat/${PROJECT_NAME}/webapps/ROOT.war ${tempDirName}`

#移动日志文件,暂时不做

#删除ROOT文件夹
echo "删除ROOT文件夹"
`rm -rf /usr/tomcat/${PROJECT_NAME}/webapps/ROOT`

#拷贝发布包到webapps
echo "拷贝发布包到webapps"
`cp ${NEW_WAR} /usr/tomcat/${PROJECT_NAME}/webapps/ROOT.war`

#启动Tomcat
cd /usr/tomcat/${PROJECT_NAME}/bin/
./startup.sh
echo "启动Tomcat..."
cd ${BASE_PATH}

#等待ROOT文件夹生成
echo "等待ROOT文件夹生成"
while :
do
	if [ -d "/usr/tomcat/${PROJECT_NAME}/webapps/ROOT" ]
	then
		break;
	fi
	echo -e "=\c"
	sleep 1s
done
echo "发布完毕 O(∩_∩)O~"

  

posted on 2017-11-04 11:20  小小程序员的梦想  阅读(230)  评论(0编辑  收藏  举报

导航