美文网首页
定时监测磁盘使用率并清除日志并重启tomcat

定时监测磁盘使用率并清除日志并重启tomcat

作者: 上下而求索 | 来源:发表于2021-04-27 17:20 被阅读0次
    #!/bin/bash
    
    export JAVA_HOME=/usr/local/java/jdk-9.0.4 #自行替换
    export PATH=$PATH:$JAVA_HOME/bin #自行替换
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar #自行替换
    
    DeleteLogUrl=/tmp/DeleteLog.log #执行日志保存路径,自行替换
    TomcatLogsUrl=/usr/local/tomcat/apache-tomcat-9.0.45/logs/* #自行替换
    ShutDownTomcat=/usr/local/tomcat/apache-tomcat-9.0.45/bin/shutdown.sh #自行替换
    StartTomcat=/usr/local/tomcat/apache-tomcat-9.0.45/bin/startup.sh #自行替换
    TomcatCache=/usr/local/tomcat/apache-tomcat-9.0.45/work #自行替换
    WebUrl=http://localhost:8080 #自行替换
    #监测某一挂载点磁盘使用率,奇葩grep会把子目录找出来,想了想加了个行尾$
    UsedDFH=$(df -h |grep -vw "Used" |grep -w "/run$" |awk '{print $5}'|cut -d "%" -f 1)
    DeleteLogMthod()
    {
        echo -e "\e[1;31m [info]开始时间:$(date +%Y_%m_%d_%H%M%S) \e[0m"
    
            echo "[info]当前主硬盘使用率为:$UsedDFH"
            echo "[info]开始判断是否大于等于80"
        if [ $UsedDFH -ge 80 ];then
            echo -e "\e[1;31m [info]主硬盘使用率大于等于80%,即将开始关闭tomcat \e[0m"
            $ShutDownTomcat
            sleep 20 #自行调整
            #tomcat进程号
            TomcatID=$(ps -ef |grep tomcat |grep -w 'tomcat'|grep -v 'grep'|awk '{print $2}')
            if [ $TomcatID ];then
                echo -e "\e[1;31m [info]杀死$TomcatID \e[0m"
                kill -9 $TomcatID
                rm -rf $TomcatCache # 清理tomcat缓存
            else
                echo -e "\033[32m [info]已正常关闭tomcat \033[0m"
                rm -rf $TomcatCache # 清理tomcat缓存
            fi
            echo -e "\e[1;31m [info]开始删除tomcat日志 \e[0m"
            rm -rf $TomcatLogsUrl
            echo -e "\e[1;31m $(date +%Y_%m_%d_%H%M%S) 日志删除已完成 \e[0m"
            
            echo "********************开始启动tomcat*************************************************"
            $StartTomcat
            sleep 20 自行调整
            #拿到200说明服务没问题
            TomcatServiceCode=$(curl -s -o /tmp/null -m 10 --connect-timeout 10 $WebUrl -w %{http_code}     )
            rm -rf /tmp/null
                if [ $TomcatServiceCode -eq 200 ];then
                echo "********[info]页面返回码为$TomcatServiceCode,tomcat启动成功,测试页面正常********"
            fi
        else
            echo -e "\033[32m [info]主硬盘使用率小于80,不需要删除日志文件 \033[0m"
        fi
        echo "-------------------------------------------------------------"
    }
    DeleteLogMthod >> $DeleteLogUrl
    

    本sh参考以下文档
    监测tomcat状态传送门:https://blog.csdn.net/zhang41228/article/details/79860030

    相关文章

      网友评论

          本文标题:定时监测磁盘使用率并清除日志并重启tomcat

          本文链接:https://www.haomeiwen.com/subject/ahlprltx.html