#!/bin/bash
# func:自动部署
# author:wuxinnian
# version 1.0
#tomcat实际安装路径
tomcatPath=/home/bmp/apache-tomcat-9.0.36
#项目名称
projectName=bmp-server
#获取tomcat的进程ID
tomcatPID=$(ps -ef | grep /home/bmp/apache-tomcat-9.0.36|grep -v 'grep'|awk '{print $2}')
#PID=$(ps -ef | grep "demo.jar"|grep -v 'grep'|awk '{print $2}')
#启动tomcat
startTomcat=${tomcatPath}/bin/startup.sh
#webapps路径
webappsPath=${tomcatPath}/webapps
#获取当前的工作目录
workSpace=$(pwd)
#war文件
warfile="$projectName.war"
#主函数
function monitor()
{
echo "[info]开始监控tomcat...[$(date +'%F %H:%M:%S')]"
if [ $tomcatPID ];then
echo "[info]当前tomcat的进程ID为:$tomcatPID"
echo "停止服务..."
kill -9 $tomcatPID
echo "服务已停止"
else
echo "服务未启动"
fi
backup
removeProject
upload
startTomcat
}
#备份原来的项目
function backup()
{
echo "开始备份..."
fileDate=$(date "+%Y%m%d%H%M%S")
fileName=${projectName}${fileDate}
if [ -d "$webappsPath/$projectName" ];then
cd $webappsPath
tar -zcvf ${fileName}.tar.gz ./${projectName}
cd $workSpace
echo "备份完毕"
else
echo "不存在$webappsPath/$projectName"
fi
}
#清除tomcat项目文件
function removeProject()
{
echo "开始清理tomcat项目文件..."
if [ -d "$webappsPath/$projectName" ];then
rm -rf "$webappsPath/$projectName"
else
echo "不存在$webappsPath/$projectName"
fi
if [ -f "$webappsPath/$warfile" ];then
rm -f "$webappsPath/$warfile"
else
echo "不存在$webappsPath/$warfile"
fi
echo "清理完毕"
}
#上传文件
function upload()
{
cd $webappsPath
if [ -f "$webappsPath/$warfile" ] ;then
echo "已存在$warfile"
else
echo "上传文件..."
rz -y
echo "文件上传完成"
fi
cd $workSpace
}
#启动tomcat
function startTomcat()
{
if [ -f "$webappsPath/$warfile" ];then
cd ${tomcatPath}/bin/
echo "启动tomcat..."
$startTomcat
echo "服务已启动"
tail -f ${tomcatPath}/logs/catalina.out
else
echo "未找到$warfile"
fi
}
monitor