Tomcat項目自動部署腳本


一般情況下使用的Linux環境都是加固的,root路徑只有超級管理員權限才能進入。我們新建一個自己的用戶,在/home下會有一個用戶目錄,傳輸war包都放在這個目錄下,此時不動webapps文件下的內容,傳輸包的時候,項目不會中斷。

如下是部署腳本deploy.sh:

#!/bin/bash
#自動部署腳本

#tomcat路徑
tomcatBinPath=/alidata/server/tomcat-7.0.54/bin
#war包和腳本目錄
homepath=/home/baihuidong/DeployApplicationForTomcat

echo '--------開始部署--------'

#檢查war包是否存在
cd $homepath
if [ $(find ./ -maxdepth 1 -name "*.war"|wc -l) -ne 1 ]; then
    echo '請保證DeployApplicationForTomcat文件中有且只有一個war包!'
    exit 1
fi

#進入tomcat目錄
cd $tomcatBinPath
if [ $? -ne 0 ];then
    echo '請檢查tomcat的bin路徑是否正確!'
    exit 1
fi
echo "進入tomcat的bin目錄:$tomcatBinPath"

pid=$(ps -fu `whoami`|grep "$tomcatBinPath"|grep -v grep|awk '{print $2}')
if [ -z "$pid" ];then
    echo "相關tomcat進程已關閉:$pid"
else
    ./shutdown.sh    #停止tomcat服務
    sleep 8
    kill -9 $pid
    echo '成功關閉tomcat服務!'
fi

#清空oldWarPackage目錄
cd $homepath
if [ $? -ne 0 ];then
    echo '請檢查homepath路徑是否正確或者是否有權限進入!'
    exit 1
fi

if [ -d $homepath/oldWarPackage ];then
    echo "oldWarPackage文件夾存在!"
    rm -rf $homepath/oldWarPackage/* else
    echo "oldWarPackage文件夾不存在!"
    mkdir $homepath/oldWarPackage
fi


cd $tomcatBinPath/../webapps/
if [ $? -ne 0 ];then
    echo '請檢查webapps路徑是否正確!'
    exit 1
fi
echo "進入webapps目錄:$(pwd)"

cp *.war $homepath/oldWarPackage/
if [ $? -ne 0 ];then
    echo '請檢查webapps下是否有war包或者oldWarPackage目錄是否存在!'
    exit 1
fi

rm -rf *
cp $homepath/*.war ./

chown root:root *.war
chmod 755 *.war

cd $tomcatBinPath
./startup.sh

echo '--------部署結束--------'

若部署中間出錯,則使用回滾腳本

回滾腳本rollback.sh:

#!/bin/bash
#回滾腳本

#war包和腳本目錄
homepath=/home/baihuidong/DeployApplicationForTomcat

cd $homepath/oldWarPackage
if [ $(find ./ -maxdepth 1 -name "*.war"|wc -l) -ne 1 ]; then
    echo '請保證oldWarPackage文件中有且只有一個war包!'
    exit 1
fi

echo '------回滾開始------'
cd ../
rm -rf ./*.war
cp ./oldWarPackage/*.war ./ ./deploy.sh echo '------回滾結束------'

其實這里的回滾腳本,是重新部署原war包的方案。還有一種方案,就是備份webapps路徑下的war包和ROOT文件夾,回滾之后拷貝到webapps下,重啟tomcat,這樣省去了Tomcat解壓war包的時間。

注意:

如果在Linux下使用vim命令編寫腳本,需添加相關執行權限才能被執行(文件名變成綠色)。

如果在windows下編寫的sh腳本,傳到Linux上,需要增加相關執行權限,且需要格式轉化

使用如下命令進行轉換:

chmod 755 deploy.sh    //設置執行權限
dos2unix deploy.sh    //格式轉化
busybox dos2unix deploy.sh    //如果提示dos2unix命令找不到,使用這條

還可以使用vim進行格式轉化。具體看我的vim的文章。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM