您的位置:首页 > 运维架构 > Tomcat

Tomcat 自动部署、回滚(java project)脚本

2016-12-20 22:32 656 查看

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 root@remote_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: shaonbean@qq.com
# 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  tomcat shell java api