1. 程式人生 > >Tomcat_自動部署WAR 至 Tomcat的ROOT 指令碼

Tomcat_自動部署WAR 至 Tomcat的ROOT 指令碼

我們在線上釋出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!!"



呼叫示例: