執行環境:
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...