监控用的

#!/bin/bash
#
#*/2 * * * * sh /home/apache-tomcat-7.0.61/bin/detectionTMT.sh




# 获取tomcat进程ID(其中[grep -w 'tomcat']代码中的tomcat需要替换为你的tomcat文件夹名)
TomcatID=$(ps -ef | grep "org.apache.catalina.startup.Bootstrap" | grep -v 'grep' | awk '{print $2}')

# tomcat启动程序(这里注意tomcat实际安装的路径)
StartTomcat=./startup.sh

#定义要监控的页面地址
WebUrl=http://192.169.160.19:8088/mp_topics/jsp/100/to_100.jsp

#日志输出
GetPageInfo=/home/apache-tomcat-7.0.61/logs/TomcatMonitor.Info
TomcatMonitorLog=/home/apache-tomcat-7.0.61/logs/TomcatMonitor.log

Monitor()
{
echo "[info]开始监控tomcat...[$(date +'%F %H:%M:%S')]"
if [ -n "$TomcatID" ];then #这里判断Tomcat进程是否存在
echo "[info]当前tomcat进程ID为:$TomcatID,继续检测页面..."
# 检测是否启动成功(成功的话页面会返回状态"200")
TomcatServiceCode=$(curl -s -o $GetPageInfo -m 10 --connect-timeout 10 $WebUrl -w %{http_code})
if [ $TomcatServiceCode -eq 200 ];then
echo "[info]页面返回码为$TomcatServiceCode,tomcat启动成功,测试页面正常"
else
echo "[error]tomcat页面出错,请注意...状态码为$TomcatServiceCode,错误日志已输出到$GetPageInfo"
echo "[error]页面访问出错,开始重启tomcat"
kill -9 $TomcatID # 杀掉原tomcat进程
echo "杀掉原tomcat进程$TomcatID"
sleep 3
cd /home/apache-tomcat-7.0.61/bin/ && $StartTomcat
fi
else
echo "[error]tomcat进程不存在!tomcat开始自动重启..."
echo "[info]$StartTomcat,请稍候..."
cd /home/apache-tomcat-7.0.61/bin/ && $StartTomcat
fi
echo "--------------------------"
}
Monitor>>$TomcatMonitorLog

清理日志用的

datess=$(date "+%Y-%m-%d   %H:%M:%S")
echo "-------------------------------------$datess--------------------------------------" >> /home/apache-tomcat-7.0.88/logs/cleanlogrecording.txt


cleanLog () {
#3天前的日期
today=$(date +%Y%m%d --date="-3 day")
#遍历这个数组
for file in $files
do
#截取文件的后缀时间
#date2="${file##*.}"
#获取该文件的创建时间
datatime=$(stat $file|grep Modify|awk '{print $2}'|sed s/-//g)
#如果这个文件的时间小于三天前的时间则删除这个文件
if [ $datatime -lt $today ]; then
rm -rf $file
fi
done
}

#需要清除的日志路径 下方类似
files=/home/apache-tomcat-7.0.88/logs/catalina.*.log

cleanLog $files

files=/home/apache-tomcat-7.0.88/logs/host-manager.*.log

cleanLog $files

files=/home/apache-tomcat-7.0.88/logs/localhost.*.log

cleanLog $files

files=/home/apache-tomcat-7.0.88/logs/localhost_access_log.*.txt

cleanLog $files

files=/home/apache-tomcat-7.0.88/logs/manager.*.log

cleanLog $files

#files=/home/logging/hs/bubble/spring.log.*
#cleanLog $files


cat /dev/null > /home/apache-tomcat-7.0.88/logs/catalina.out

配合linux的crontab定时任务  即可达到效果