zoukankan      html  css  js  c++  java
  • shell脚本 tomcat自动备份发布服务

    #!/bin/bash

    # func:自动部署
    # author:wuxinnian
    # version 1.0

    #tomcat实际安装路径
    tomcatPath=/home/bmp/apache-tomcat-9.0.36
    #项目名称
    projectName=bmp-server

    #获取tomcat的进程ID
    tomcatPID=$(ps -ef | grep /home/bmp/apache-tomcat-9.0.36|grep -v 'grep'|awk '{print $2}')

    #PID=$(ps -ef | grep "demo.jar"|grep -v 'grep'|awk '{print $2}')

    #启动tomcat
    startTomcat=${tomcatPath}/bin/startup.sh
    #webapps路径
    webappsPath=${tomcatPath}/webapps
    #获取当前的工作目录
    workSpace=$(pwd)
    #war文件
    warfile="$projectName.war"


    #主函数
    function monitor()
    {
      echo "[info]开始监控tomcat...[$(date +'%F %H:%M:%S')]"
      if [ $tomcatPID ];then
        echo "[info]当前tomcat的进程ID为:$tomcatPID"

        echo "停止服务..."
        kill -9 $tomcatPID

        echo "服务已停止"
      else
        echo "服务未启动"

      fi
      backup
      removeProject
      upload
      startTomcat
    }

    #备份原来的项目
    function  backup()
    {
      echo "开始备份..."
      fileDate=$(date "+%Y%m%d%H%M%S")
      fileName=${projectName}${fileDate}
      if [ -d "$webappsPath/$projectName" ];then
        cd $webappsPath
        tar -zcvf ${fileName}.tar.gz ./${projectName}
        cd $workSpace
        echo "备份完毕"
      else
        echo "不存在$webappsPath/$projectName"
      fi
    }

    #清除tomcat项目文件
    function removeProject()
    {
      echo "开始清理tomcat项目文件..."
      if [ -d "$webappsPath/$projectName" ];then
        rm -rf "$webappsPath/$projectName"
      else
        echo "不存在$webappsPath/$projectName"
      fi
      if [ -f "$webappsPath/$warfile" ];then
        rm -f "$webappsPath/$warfile"
      else
        echo "不存在$webappsPath/$warfile"
      fi
      echo "清理完毕"
    }

    #上传文件
    function upload()
    {
      cd $webappsPath
      if [ -f "$webappsPath/$warfile" ] ;then
        echo "已存在$warfile"
      else
        echo "上传文件..."
        rz -y

        echo "文件上传完成"
      fi
      cd $workSpace
    }

    #启动tomcat
    function startTomcat()
    {
      if [ -f "$webappsPath/$warfile" ];then
        cd ${tomcatPath}/bin/
        echo "启动tomcat..."
        $startTomcat

        echo "服务已启动"
        tail -f ${tomcatPath}/logs/catalina.out
      else
        echo "未找到$warfile"
      fi
    }
    monitor

  • 相关阅读:
    使用maven管理后,依然找不到需要的jar包
    ftp linux-500 OOPS问题解决-jooyong-ChinaUnix博客
    Linux命令 理解
    c++大数模板
    二分匹配专辑
    fzu2157(树形dp)
    fzu2158
    csu1356 :判断一个环是否为奇数环
    rmq模板
    zoj 3761(并查集+搜索)
  • 原文地址:https://www.cnblogs.com/xiule/p/13960142.html
Copyright © 2011-2022 走看看