#!/bin/bash
#当前shell程序的路径
dir=$(pwd)
echo "当前服务路径为:"$dir
echo "请确保要替换的war包已放在本执行文件同目录下"
echo "请确保要替换的配置文件已放在本执行文件同目录下"
read -p "是否继续执行本程序(yes/no): " command
if [ "${command}" == "yes" ]; then
echo "开始执行本程序"
else
exit 0
fi
#1.停止当前服务
PID=$(ps -ef | grep ${dir} | grep -v grep | awk '{ print $2 }')
if [ -z "${PID}" ]; then
echo "停止当前服务"
else
echo "停止当前服务"
echo "kill" $PID
kill $PID
fi
#2.删除war包
echo "删除旧ROOT.war和ROOT文件夹"
rm -rf $dir/webapps/ROOT
rm -rf $dir/webapps/ROOT.war
#3.上传war包,修改war包名称
read -p "请输入war包文件名: " WARFILE
echo "复制war包到webapps目录"
if [ -f $WARFILE ]; then
cp $dir/$WARFILE $dir/webapps/ROOT.war
#4.解压war包
mkdir $dir/webapps/ROOT/
cd $dir/webapps/ROOT/
jar -xvf ../ROOT.war
#5.等待1s 删除war文件
sleep 1
rm -rf $dir/webapps/ROOT.war
else
echo $WARFILE "不存在"
exit 0
fi
#6.替换配置文件
while true
do
read -p "是否要替换配置文件(yes/no): " replacep
if [ "${replacep}" == "yes" ]; then
read -p "请输入配置文件名: " repfilename
if [ -f $dir/$repfilename ]; then
rm -rf $dir/webapps/ROOT/WEB-INF/classes/config/$repfilename
cp $dir/$repfilename $dir/webapps/ROOT/WEB-INF/classes/config/$repfilename
else
echo $repfilename "不存在"
fi
else
break
fi
done
#7.启动服务
echo "开始启动当前服务"
$dir/bin/startup.sh
TPID=$(ps -ef | grep ${dir} | grep -v grep | awk '{ print $2 }')
echo "服务启动完毕 pid: " $TPID
#8.退出程序
exit 0
#一件部署war包脚本使用说明
#部署说明
1.将rebuildwar.sh复制到Tomcat根目录
2.将war包上传到Tomcat根目录
3.若有配置好的配置文件可以复制到Tomcat根目录,若无需替换配置文件则可不上传
#使用步骤
1.执行./rebuildwar.sh
执行完之后会显示当前服务的路径并提醒必要的文件是否准备好,请比对当前服务路径是否正确并确保已准备好必要的文件
若无问题则输入yes继续本程序,若有问题则输入no终止本程序
2.输入yes继续本程序,提示输入war包文件名
输入正准的war包文件名后程序会自动将war包上传到webapps目录,并解压war包
输入错误的war包文件名后程序会提示文件不存在并终止程序
3.输入正确war包文件名按回车键,等待程序解压完毕后,提示是否替换配置文件
若无需替换配置文件则输入no
若需要替换配置文件则输入yes,程序提示输入需要替换的配置文件名,配置文件可能有多个,替换完成后会继续提示是否替换,若需替换则重复该步骤,若不需继续替换则输入no终止替换
4.上述步骤执行完成后程序会自动启动Tomcat服务