#!/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
网友评论