linux下關於tomcat的自動化操作

每天tomcat正式環境和測試環境部署上線浪費了大量時間,每次無非就是備份替換重啟,這是一件很枯燥的事情,所以我整理了一下關於tomcat能夠自動備份與重啟的腳本,希望能夠幫助到其他人。

tomcat自動化部署腳本實現的功能如下:

(1) 檢查tomcat進程是否存在,如果存在則kill掉

(2) 備份現有war包到tomcat/backup目錄

(3) 複製當前目錄新war包到tomcat/webapps目錄

(4) 啟動tomcat

shell腳本內容如下:

#!/bin/bash

now=`date +%Y%m%d%H%M%S`

tomcatPath=/usr/local/tomcat/software/tomcat6

Advertisements

backupPath=/usr/local/<span style="line-height: 1.5;">tomcat</span><span style="font-size: 1em; line-height: 1.5;">/software/tomcat6/backup</span>

war=$1

if [ -e "$war.war" ]; then

echo -e "\033[34m war archive: $war.war \033[0m"

else

echo -e "\033[31m war archive '$war.war' not exists \033[0m"

Advertisements

exit -1

fi

# change color

echo -e "\033[34m"

#create backup dir

if [ ! -d "$backupPath" ]; then

mkdir "$backupPath"

fi

echo "tomcat home: $tomcatPath"

echo "backup path: $backupPath"

echo 'try to stop tomcat...'

pid=`ps aux|grep "java"|grep "$tomcatPath"|awk '{printf $2}'`

if [ -n $pid ]; then

echo "tomcat pid: $pid";

kill -9 $pid;

fi

echo 'stop tomcat finished...'

echo 'backup old archive...'

if [ -f "$tomcatPath/webapps/$war.war" ]; then

mv -v "$tomcatPath/webapps/$war.war" "$backupPath/$1_$now.war";

fi

rm -rf $tomcatPath/webapps/$war*

echo "copy $war.war archive to webapps.."

cp -v "$war.war" "$tomcatPath/webapps/"

echo -e "\033[32m"

echo 'startup tomcat...'

sh $tomcatPath/bin/startup.sh

tail -10f $tomcatPath/logs/catalina.out

使用時,需要先修改tomcatPath的值為實際tomcat路徑。

保存該文件到autodeploy.sh, 執行命令:

Shell執行代碼

./autodeploy.sh abc

autodeploy.sh和abc.war

Advertisements

你可能會喜歡