1. 程式人生 > >使用shell自動部署tomcat專案

使用shell自動部署tomcat專案

由於測試伺服器經常需要更新,覺得太麻煩就寫了個shell指令碼,記錄下來僅供大家參考

#!/bin/bash
#------自動部署多個tomcat專案指令碼------
#1.刪除部署目錄下已存在的專案
#2.解壓war包到對應目錄下
#3.重新啟動tomcat伺服器
#--------------------------------------
home_dir=/home/t0mcat
#tomcat目錄
soa_tomcat_path=/opt/software/apache-tomcat-7.0.64_SOA
#部署目錄
soa_deployment_path=/opt/software/web/dev/yiweinet-soa
#war包名稱
soa_war=business-soa.war

mer_tomcat_path=/opt/software/apache-tomcat-7.0.64_MERCHANT
mer_deployment_path=/opt/software/web/dev/business-merchant
mer_war=business-merchant.war
#get war and return path
findAllWar(){
  cd $home_dir
  v_war_file_list=$(find -name "*.war")
  echo "war list:"
  ls $v_war_file_list
}

process(){
for i in $(findAllWar)
  do
    v_file_path=$i
    #echo $v_file_path  
    v_file_name=${v_file_path##*/}
    echo $v_file_name  
    if [ $v_file_name = $soa_war ] 
    then   
     operTomcat $soa_war $soa_deployment_path $soa_tomcat_path
    fi
    if [ $v_file_name = $mer_war ] 
    then   
     operTomcat $mer_war $mer_deployment_path $mer_tomcat_path
    fi
 done
}

operTomcat() {  
    
  stopTomcat $3  
    
  #get first param length  
  v_file_length=${#1}  
    
  #get file name(1 is first param)  
  v_file_name=${1:0:$[ $v_file_length - 4 ]}  
    
  #del and move war  
  cd $2  
  rm -rf $v_file_name*           
  jar xvf ${home_dir}/$1
   
  startTomcat $3  
}

stopTomcat() {  
  cd $1"/bin"  
  ./shutdown.sh  
  #rm -rf $1"/logs/"*  
  echo "$1 shutdown over"    
} 

startTomcat() {  
  cd $1"/bin"  
  ./startup.sh  
  echo "$1 start over"  
}  

echo "start"  
process  
echo "end"