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