前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Tomcat 自动部署、回滚(java project)脚本

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

作者头像
shaonbean
发布2019-05-26 09:31:43
7010
发布2019-05-26 09:31:43
举报
文章被收录于专栏:运维前线运维前线

版权声明:本文为木偶人shaon原创文章,转载请注明原文地址,非常感谢。 https://cloud.tencent.com/developer/article/1434678

Tomcat 自动部署

自动部署java项目,从打包服务器scp项目war到本地,本地启动tomcat

代码语言:javascript
复制
#!/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 回滚

回滚最近三次的部署

代码语言:javascript
复制
#!/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
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016年12月20日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Tomcat 自动部署
  • Tomcat 回滚
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档