我们在线上发布WAR包,通常把WAR包,放到 Tomcat 中的webapps中。这个时候,Tomcat 就会自动将WAR 包 解压到 webapps 目录下。产生一个解压后的文件夹。
问题:
1 .war 解压后并不会删除,会留下残留文件
2 为了不加包前缀,我们一般要把解压后的文件夹的内容放到ROOT 目录中。
为此,我写了如下脚本。将war 扔到 webapps 目录下后,就什么都不用管了。解决了问题1.2
auto_deploy_war.sh
#!/bin/bash
if [ x$1 != x ]
then
#...有参数
echo 'filename : '$1
else
#...没有参数
echo 'Usage: ./auto_deploy_war.sh <war_file>'
exit
fi
filename=${1%.*}
extension=${1##*.}
if [ x$extension != x'war' ]
then
echo 'NOT a war file'
echo 'Usage: ./auto_deploy_war.sh xxx.war'
exit
fi
app_location=${TOMCAT_HOME}/webapps
cp ./$1 ${app_location}/
sleep 1m
echo "rm ROOT/"
rm -rf ${app_location}/ROOT/*
sleep 10s
echo "cp -R xxx/* to ROOT/"
cp -R ${app_location}/${filename}/* ${app_location}/ROOT/
sleep 1m
rm -rf ${app_location}/${filename}*
echo "deploy compelete!!"
调用示例: