1. 程式人生 > >Tomcat 自動部署、回滾(java project)指令碼

Tomcat 自動部署、回滾(java project)指令碼

Tomcat 自動部署

自動部署java專案,從打包伺服器scp專案war到本地,本地啟動tomcat

#!/bin/bash
#############################################################################
# Functions: auto deploy api project, base on tomcat
#############################################################################
# ChangeLog:
# 2016-12-19    wanghui    initial create
# ############################################################################# # set some variables Date=`date +%F_%T` DATE=`date +Y-%m-%d` Project=project_name Back_dir=/data/war_back/$Project Wget_dir=/data/wget Old_project=/data/svn #New_project=/data/svn/aniu-project # make sure define folder was created
[ -d $Back_dir ] || mkdir -p $Back_dir [ -d $Wget_dir ] || mkdir -p $Wget_dir # backup in use project war to back_dir /bin/mv $Wget_dir/$Project.war $Back_dir/$Project_$Date.war # upload project war from remote server /usr/bin/scp -P54077 [email protected]_ip:$Old_project/aniu-api/target/$Project.war $Wget_dir
/ for port in 8082 8083 8084 do Tomcat_port=tomcat_$port Project_home=/data/$Tomcat_port Project_dir=$Project_home/webapps # echo "*** First step shutdown $Tomcat_port ***" /bin/bash $Project_home/bin/shutdown.sh tomcat_status=`ps -ef | grep $Tomcat_port | grep -v grep | awk '{print $2}' | wc -l` if [ $tomcat_status -eq 0 ];then echo "*** $Tomcat_port auto shutdown succeed! ***" else # echo "*******************************************************************************" # echo "*** $Tomcat_port auto shutdown failed,then should force shutdown $Tomcat_port! " ps -ef | grep $Tomcat_port | grep -v grep | awk '{print $2}' | xargs kill -9 tomcat_pid=`ps -ef | grep $Tomcat_port | grep -v grep | awk '{print $2}'` /bin/kill -9 tomcat_pid fi /bin/rm -rf $Project_dir/$Project* /bin/cp $Wget_dir/$Project.war $Project_dir/ /bin/bash $Project_home/bin/startup.sh # echo "-----------------------------------------------------------------------------------" tomcat_pid=`ps -ef | grep $Tomcat_port | grep -v grep | awk '{print $2}'` if [ $tomcat_pid -ne 0 ];then echo "*************************************************" echo "*** $Tomcat_port auto start succeed ! ***" echo "*************************************************" else echo "### $Tomcat_port auto start failed! #####" echo "#########################################" fi done

Tomcat 回滾

回滾最近三次的部署

#!/bin/bash
##########################################################################
# Script Name: rollback_api.sh
# Author: shaon
# Email: [email protected]
# Created Time: Tue 20 Dec 2016 07:56:59 PM CST
#########################################################################
# Blog address: http://blog.csdn.net/wh211212
#########################################################################
# Define some variables #
Date=`date +%F_%T`
DATE=`date +Y-%m-%d`
Project=aniuapi
Back_dir=/data/war_back/$Project
Wget_dir=/data/wget

# Move to Back_dir watch which time deploy you want Rollback
echo "-----------------------------------------------------"
echo "  Three last deploy version "
ls -ltr $Back_dir | tail -3 > /tmp/version.txt
cat /tmp/version.txt
read -p "which version war you want rollback: " version

# Begin rollback all api
echo "-----------------------------------------------------"
echo "----       Begin rollback all api!               ----"
echo "-----------------------------------------------------"
# Copy need rollback api.war to wget_dir
  /bin/cp -f $Back_dir/$version $Wget_dir/$Project.war

  for port in 8082 8083 8084
    do
    Tomcat_port=tomcat_$port
    Project_home=/data/$Tomcat_port
    Project_dir=$Project_home/webapps
  #  echo "*** First step shutdown $Tomcat_port ***"
    /bin/bash $Project_home/bin/shutdown.sh
    tomcat_status=`ps -ef | grep $Tomcat_port | grep -v grep | awk '{print $2}' | wc -l`
    if [ $tomcat_status -eq 0 ];then
         echo "*** $Tomcat_port auto shutdown succeed!  ***"
      else
  #       echo "*******************************************************************************"
  #       echo "*** $Tomcat_port auto shutdown failed,then should force shutdown $Tomcat_port! " 
         ps -ef | grep $Tomcat_port | grep -v grep | awk '{print $2}' | xargs kill -9
         tomcat_pid=`ps -ef | grep $Tomcat_port | grep -v grep | awk '{print $2}'`
         /bin/kill -9 tomcat_pid
    fi
    /bin/rm -rf $Project_dir/$Project*
    /bin/cp $Wget_dir/$Project.war $Project_dir/
    /bin/bash $Project_home/bin/startup.sh
  #  echo "-----------------------------------------------------------------------------------"
    tomcat_pid=`ps -ef | grep $Tomcat_port | grep -v grep | awk '{print $2}'`
    if [ $tomcat_pid -ne 0 ];then
       echo "*****************************************************"
       echo "***      $Tomcat_port auto rollback succeed !     ***"
       echo "******************************************************"
    else
       echo "### $Tomcat_port auto rollabck failed! #####"
       echo "#############################################"
    fi
  done 
#
rm -f /tmp/version.txt