我们在线上发布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!!"
调用示例: