公司的tomcat存在内存泄露的问题,偏偏程序员们也没时间去debug,当时我正好在研究shell脚本,就用shell写了如下内容:
首先,我不太懂tomcat,所以请java程序员写了一个web页面监控tomcat的状态,当tomcat空闲内存太少的时候,web页面的“LessOfMemory”字段就会消失,然后根据这个来判断是否应该重启tomcat。
正文如下:
#!/bin/bash
#Program
# yong lai jian shi tomcat shi fou si diao .ru guo si le jiu chong qi ta .
#History
#2009/1/5 Caoyameng Version 1.0
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin:/usr/local/tomcat/bin
export PATH
#PATH里加入了tomcat的路径
test -e "status.jsp" && rm -f status.jsp;
#检测当前目录下是否有监控用的web文件存在,存在则删除。
wget -b "http://127.0.0.1/main/status.jsp"
#下载这个页面,加-b的参数是为了让wget后台下载。
#之所以设置后台下载,是考虑到一种及其罕见的情况,如果cpu占用量100%或者端口阻塞,10分钟乃至1个小时都下载不下来这个页面,那整个监控脚本岂不是要卡在这里不动了?
sleep 3
#延时三秒,给wget下载页面的时间
tom=`cat status.jsp |grep LessOfMemory`
#设置一个变量为tom。
if
[ "$tom" == "" ] ;then
sh /opt/tomcat/bin/shutdown.sh
#如果tom变量为空,则执行tomcatshutdown程序
date >>time.txt
#将shutdown的时间计入日志。
elif
[ "$tom" != "" ] ;then
exit 0
#如果tom不为空,则说明该web页面含有LessOfMemory字段,tomcat工作正常,退出shell脚本。
fi
sleep 3
#延时三秒,给tomcat自己结束自己的时间
tompid=`ps x | grep tomcat | grep -v grep|awk '{print $1}'`
#看一下tomcat进程是否还存在?如果存在,则将其PID号赋值给tompid变量
[ -z "$tompid" ] && kill -9 $tompid ;
#如果tompid不为空,则执行kill -9命令强行结束tomcat
Date >> time2.txt
#将系统时间写入第二个日志文件
sh /opt/tomcat/bin/startup.sh
#重启tomcat。
分享到:
相关推荐
首先,"自动重启Tomcat脚本"是一个批处理文件,它定期检查Tomcat的运行状况。通常,这个脚本会包含一个循环结构,每隔固定的时间间隔(例如300秒)检查Tomcat是否正在运行。这可以通过检查Tomcat进程ID或者监听的...
linux系统tomcat自动重启脚本:判断监控 tomcat日志catalina.out超过一定限度 自动重启tomcat
这个解决方案主要依赖于一个批处理脚本"监控tomcat.bat",以及可能需要的辅助工具如"curl.exe"。 首先,我们需要了解"监控tomcat.bat"的作用。这是一个Windows批处理文件,通常包含了检查Tomcat状态的命令和逻辑。...
总之,Windows平台上对Tomcat的自动监控和重启是一个关键的运维任务,通过定制脚本或使用专业监控工具,可以有效地提高系统的稳定性和可靠性。同时,持续监控、日志分析和优化配置都是保持Tomcat良好运行状态的重要...
Shell脚本定时监控tomcat,服务挂掉自动重启
10秒检测tomcat网站是否访问正常,访问异常30秒内完成tomcat重启并继续监控,傻瓜式修改两个地方,第一个要监控的 url地址支持https,第二个是tomcat的安装目录,就可以了。好用记得给个大大的好评。bat文件每一行都...
本文提供的 shell 脚本用于监控 Tomcat 服务器的日志文件大小,并在日志文件超过一定大小时自动重启 Tomcat 服务器。脚本主要包括以下几个部分: 1. 环境变量的定义:脚本首先定义了一些环境变量,包括 JAVA_HOME、...
为了保证服务的连续性和稳定性,我们需要编写一个批处理脚本来监控Tomcat的状态,并在检测到异常时自动重启Tomcat。 "listener.bat" 文件很可能是这个自动重启脚本的核心部分。批处理脚本通常由一系列命令组成,...
检测Tomcat等网站假死,自动重启脚本,方便大家下载,可以参考修改。
2. **使用Supervisor**:Supervisor是一个进程管理工具,可以监控并自动重启崩溃的进程,包括Tomcat。配置Supervisor后,当Tomcat意外退出时,它会自动尝试重新启动。 3. **使用Systemd服务**:在支持Systemd的...
tomcat宕机重启脚本,比较简单的一种设置
- **创建URL对象**:使用Java中的`URL`类创建一个URL对象,该对象包含待检查的Tomcat服务器地址。 - **打开连接**:调用`openConnection()`方法打开与Tomcat服务器的连接。 - **设置超时时间**:通过`...
自动监控tomcat脚本并且执行重启操作
本文介绍了如何在Linux环境下编写一个简单的Shell脚本来监控Tomcat服务的状态,并在必要时自动重启服务。通过这种方式可以有效提高系统的稳定性及响应速度。同时,还介绍了相关的命令和工具,以及常见的问题和解决...
为了解决这个问题,我们可以编写一个监控并自动重启Tomcat的Shell脚本来确保服务的高可用性。以下将详细介绍如何创建这样的脚本。 首先,我们需要理解Linux Shell脚本的基本结构。Shell脚本是Linux操作系统中的一种...
本文将详细介绍一个用于监控并自动重启Tomcat服务的Shell脚本。 #### 二、脚本核心功能 该脚本的核心功能是: 1. **获取Tomcat进程ID**:通过`ps`命令结合`grep`等工具,精确获取当前正在运行的Tomcat实例的进程ID...
【标题】"Tomcat监控脚本(支持Windows、Linux)...综合以上,一个全面的"Tomcat监控脚本--永不宕机"应该是一个集成了多种监控手段、异常处理策略和报警系统的自动化解决方案,能够跨平台地确保Tomcat服务器的稳定运行。
因此,配置一个自动检测并重启TOMCAT的机制是提高系统可靠性的重要步骤。 【描述】中提到的“利用系统进程进行监控”是指通过监测TOMCAT的服务进程来判断其运行状态。在Windows系统中,这通常涉及到使用任务管理器...
定时监控jetty,tomcat 等各种容器端口,自动重启服务,端口可以自己配置windows 的bat 脚本
Expect是一个用于自动化交互式进程的Tcl扩展,它可以模拟用户输入,使得脚本能够自动化处理需要人机交互的任务,例如SSH登录时输入密码。在这里,expect被用来自动化登录到远程服务器,避免手动输入密码,提高效率且...