设为首页 收藏本站
查看: 394|回复: 0

[经验分享] tomcat自动部署脚本

[复制链接]

尚未签到

发表于 2018-12-2 08:27:15 | 显示全部楼层 |阅读模式
  #!/bin/bash
  #defined
  now=`date +%Y%m%d%H%M%S`
  TOMCAT_HOME="/usr/tomcat7/apache-tomcat-7.0.70/"
  TOMCAT_PORT=8080
  PROJECT="$1"
  BACKUP_DIR="/tomcat_back/$PROJECT/$now"
  

  #param validate;
  if [ $# -lt 1 ]; then
  echo "you must use like this : ./publish.sh  [tomcat port] [tomcat home dir]"
  exit
  fi
  if [ "$2" != "" ]; then
  TOMCAT_PORT=$2
  fi
  if [ "$3" != "" ]; then
  TOMCAT_HOME="$3"
  fi
  

  #shutdown tomcat
  "$TOMCAT_HOME"/bin/shutdown.sh
  echo "tomcat shutdown"
  

  #check tomcat process
  # tomcat_pid=`/usr/sbin/lsof -n -P -t -i :$TOMCAT_PORT`
  tomcat_pid=`ps aux|grep "java"|grep "$TOMCAT_HOME"|awk '{printf $2}'`
  while [ -n "$tomcat_pid" ]
  do
  echo "current :" $tomcat_pid
  kill -9 $tomcat_pid
  echo "scan tomcat pid :" $tomcat_pid
  done
  

  #publish project
  echo "scan no tomcat pid,$PROJECT publishing"
  rm -rf "$TOMCAT_HOME"/webapps/$PROJECT*
  cp /save/$PROJECT*.war "$TOMCAT_HOME"/webapps/$PROJECT.war
  

  #bak project and may be create backup dir
  if [ ! -d "$BACKUP_DIR" ]; then
  mkdir -p "$BACKUP_DIR"
  fi
  cp "$TOMCAT_HOME"/webapps/$PROJECT.war "$BACKUP_DIR"/"$PROJECT"_`date +%H%M%S`.war
  

  #remove tmp
  rm -rf /save/$PROJECT*.war
  

  #start tomcat
  "$TOMCAT_HOME"/bin/startup.sh
  tail -10f "$TOMCAT_HOME/logs/catalina.out"
  echo "#############################################################"
  echo "tomcat is starting,please try to access $PROJECT conslone url"
  echo "#############################################################"
  

  每一步的注释还算清楚,因为公司项目本身没有采用专业的源码管理工具来管理项目,所以此脚本还要准备好相应的不同平台的配置文件,需要更改默认的项目配置文件,如果有专业的源码管理,那就不用这么啰嗦了,直接使用该脚本就可以部署tomcat的工程了
  

  ######################## 以下为更新后的脚本 ##########################
  #!/bin/bash
  #defined
  TOMCAT_HOME="/usr/tomcat7/apache-tomcat-7.0.70"
  TOMCAT_PORT=8080
  PROJECT="$1"
  #param validate
  if [ $# -lt 1 ]; then
  echo "you must use like this : ./publish.sh  [tomcat port] [tomcat home dir]"
  exit
  fi
  if [ "$2" != "" ]; then
  TOMCAT_PORT=$2
  fi
  if [ "$3" != "" ]; then
  TOMCAT_HOME="$3"
  fi
  #shutdown tomcat
  "$TOMCAT_HOME"/bin/shutdown.sh
  echo "tomcat shutdown"
  #check tomcat process
  tomcat_pid=`/usr/sbin/lsof -n -P -t -i :$TOMCAT_PORT`
  echo "current :" $tomcat_pid
  while [ -n "$tomcat_pid" ]
  do
  tomcat_pid=`/usr/sbin/lsof -n -P -t -i :$TOMCAT_PORT`
  kill -9 $tomcat_pid
  echo "scan tomcat pid :" $tomcat_pid
  done
  #publish project
  echo "scan no tomcat pid,$PROJECT publishing"
  rm -rf "$TOMCAT_HOME"/webapps/$PROJECT*
  cp /save/$PROJECT*.war "$TOMCAT_HOME"/webapps/$PROJECT.war
  #bak project
  BAK_DIR=/save/bak/$PROJECT/`date +%Y%m%d`
  mkdir -p "$BAK_DIR"
  cp "$TOMCAT_HOME"/webapps/$PROJECT.war "$BAK_DIR"/"$PROJECT"_`date +%H%M%S`.war
  #remove tmp
  rm -rf /save/$PROJECT*.war
  #start tomcat
  "$TOMCAT_HOME"/bin/startup.sh
  sleep 5
  #echo "tomcat is starting,please try to access $PROJECT conslone url"
  

  ### change the configure file ###由于在shell脚本中处于非交互模式,所以alias功能是未开启的,然后强制复制项目的配置文件到tomcat应用里面
  shopt -s expand_aliases
  unalias cp
  cp -af /save/configfile/*   /usr/tomcat7/apache-tomcat-7.0.70/webapps/manage/WEB-INF/classes/
  ### restart tomcat application
  "$TOMCAT_HOME"/bin/shutdown.sh
  ### check tomcat process agion
  tomcat_pid=`ps aux|grep "java"|grep "$TOMCAT_HOME"|awk '{print $2}'`
  if [ -n "$tomcat_pid" ];then
  echo "current :" $tomcat_pid
  kill -9 $tomcat_pid
  else
  echo "no tomcat process"
  fi
  ### start tomcat
  "$TOMCAT_HOME"/bin/startup.sh
  echo "###################################################"
  echo "# tomcat is starting.pleage check the logs for it #"
  echo "###################################################"
  

  到此,此脚本告一段落,注意此脚本备份的是上传的项目,而非上次的项目,如果自己有需求,要注意配置相关部分
  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-642193-1-1.html 上篇帖子: Tomcat的安装、部署和常用组件 下篇帖子: 实现 Tomcat 的负载均衡
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表