shell實現tomcat自動備份重啟

2021-06-13 19:34:38 字數 1489 閱讀 8402

執行環境:

tomcat:apache tomcat version 7.0.25

server:centos release 6.2

作為一名web程式設計師或測試人員,需要經常發布程式到線上環境或測試環境中。

每次向線上或者測試環境發布新war包的時候,我一般都這麼做

1、put ***.war 到 tomcat_***(一台伺服器上有多個tomcat,比如專案名稱是***,tomcat一般命名為tomcat_***)

2、ps -ef | grep tomcat_*** 找到對應的tomcat程序

3、kill tomcat程序

5、mv ***.war 到指定的備份目錄中

8、執行startup.sh,啟動tomcat

9、tail -f catalina.out 檢視啟動日誌輸出,確保啟動成功。

現在有了auto_deploy.sh,將auto_deploy.sh放在tomcat的bin目錄下,

只需要以下兩步(以我的環境為例)

1、put ***.war 到 /work/tomcat_***

2、執行auto_deploy.sh

auto_deploy.sh全部**如下:(注意:首次執行需要指定pro_name)

#!/bin/sh

#專案名稱,一般是war包的名稱,例如***.war,則pro_name="***"

pro_name=""

#shell 檔案所在目錄

bin_dir="$( cd "$( dirname "$" )" && pwd )"

#tomcat 根目錄

tomcat_home="$(dirname $)"

#tomcat 程序名稱,一般是ps -ef |grep *** 中的***

prg="$(basename $)"

date=`date +%y%m%d%h%m%s`

if [ "$pro_name" = "" ]; then

echo "error:未配置專案名稱,請配置 pro_name 引數值!!!"

exit 0

fi#kill tomcat 程序

ps -ef |grep "$prg" | grep "jdk" | awk '' | sh

#生成乙個備份目錄

if [ ! -d "$tomcat_home/bak" ]; then

mkdir $tomcat_home/bak

fi#部署新war包,同時將舊war包備份並刪除舊的程式檔案

if [ -f "$tomcat_home/$pro_name.war" ]; then

fifi#啟動tomcat

nohup $tomcat_home/bin/startup.sh > $tomcat_home/logs/catalina.out &

#列印啟動日誌

tail -f $tomcat_home/logs/catalina.out

實現tomcat自動啟動shell程式設計

bin bash tomcat chkconfig 2345 88 86 description tomcat server.this service starts up the openssh server daemon.etc rc.d init.d functions tomcat home ...

shell程式設計 自動備份tomcat日誌詳解

每天凌晨一點,將tomcat中的catalina.out日誌壓縮並備份到目標資料夾中,以當天日期為格式,然後清空日誌。刪除超過15天的備份日誌,並將logs中的其他日誌檔案每7天清空一次 如 localhost.2018 09 21.log等 用date函式擷取當前時間日期 將logs中的catal...

shell實現ftp自動備份

功能 環境 倆臺機器都是centos4.5 x86 1.ftp伺服器主機資訊 ftp伺服器主機名server vftp服務端 vsftp 2.0.1 5.el4.5 vftp伺服器ftp目錄預設是系統使用者所在目錄 這裡的使用者為ftptest,家目錄為 home ftptest ip 192.16...