检测tomcat服务,实现崩溃自动重启并发送邮件提醒
来源:互联网 发布:ppt怎样做好看知乎 编辑:程序博客网 时间:2024/05/18 00:21
场景需求
tomcat偶尔并不是那么稳定,可能在长时间运行时突然就崩掉了,任何接口都得不到处理,没有返回值,当然,我们需要对各种参数进行配置,实现调优。当然的当然,最大的原因还是在于部署其中的代码,而这又是和我们的水平密切相关的TAT~
很多企业仍然会将tomcat用于生产环境,这个时候出现崩溃就比较棘手,有时候运营那边大半夜或者周末一个电话,我们就不得安宁了。。。
本文通过简短的VB脚本,实现对tomcat服务进行定时检测,当服务持续出现失败时,对tomcat进行重启,并发送邮件通知自己。
当然,重启可不是用来解决问题的根本的,所以,本文仅做参考!不过还是能应一时之需,也是一种手段。
进入主题
1).准备工作
你需要一个用来测试tomcat是否活着的接口,写得越轻越好,什么逻辑都不需要,返回固定的字符串。
比如,我准备的接口的地址是http://localhost:9080/iCheck_sziit/ServiceTest,访问成功返回字符串:yisinian
2).学习如何使用blat324发送邮件,可以自行百度。下载(https://sourceforge.net/projects/blat/)好了之后,修改配置文件,运行目录下的.bat文件,即可实现发送邮件,非常好用。记得使用的邮箱开启对应的服务,否则收不到邮件。本文的vb代码和blat324使用的代码有需要可以留邮箱,因为不是本文主题就不贴配置代码(我真的会配置)~我是来骗评论的==
blat324搞定之后你所需要调用的只有一个.bat文件了。
3).贴我的完整VB代码:
rem option explicit on error resume next dim str,str1 str = "yisinian" do while 1 set objXML = createObject("MSXML2.ServerXMLHTTP") set objFSO = createObject("Scripting.FileSystemObject") const ForAppending = 8 objXML.open"get","http://localhost:9080/iCheck_sziit/ServiceTest",false objXML.send() str1 = objXML.responseTextif objXML.responseText = "" then if not objFSO.fileexists("log.ini") then set objFile = objFSO.createTextFile("log.ini") objFile.close End if set fso = objFSO.openTextFile("log.ini",8) strnow = now createobject("wscript.shell").run "C:\apache-tomcat-6.0.44-1\bin\shutdowm.bat",0 rem "发送邮件" createObject("wscript.shell").run "C:\blat324\full\sendmail.bat",0 wscript.sleep 10*1000 createobject("wscript.shell").run "C:\apache-tomcat-6.0.44-1\bin\startup.bat",0 with fso .writeline strnow&" "&"---------程序启动------------" .writeline strnow&" "&"检查地址 http://localhost:9080/iCheck_sziit/ServiceTest 访问失败 tomcat 运行出错" .writeline strnow&" "&"启动服务器 执行命令 cmd.exe /c C:\apache-tomcat-6.0.44-1\bin\startup.bat 执行成功" end withelse if instr(str1,"yisinian")>0 then set objTextFile = objFSO.openTextFile("aaa.ini",ForAppending,True) if not objFSO.fileexists("aaa.ini") then set objFile = objFSO.createTextFile("aaa.ini") objFile.close End if objTextFile.writeline(objXML.responseText) objTextFile.close else set fso = objFSO.openTextFile("log.ini",8) strnow =now fso.writeline strnow&" "&"------iCheck_sziit项目没有正常运行---------" fso.close end if end if wscript.sleep 30*1000 loop
稍微解释一下,无限循环并通过末尾的sleep实现定时访问准备好的接口。如果返回值是规定的字符串:yisinian,那么将返回值记录到文件aaa.ini中。
如果返回值有误,打印一些运行出错之类的日志到文件log.ini中,并且运行指定绝对路径中的关闭tomcat的.bat文件,调用sendmail.bat发送邮件,再运行指定的绝对路径中的tomcat的.bat启动文件。此处注意,本文代码中做在关闭tomcat之后作了一个10s的延时,因为通常项目较大时,关闭tomcat时要等几秒才能整个关闭完成~
好了,整个过程就是这样的了。正常执行的时候同路径下会生成aaa.ini和log.ini日志文件
当然,文件名和各种文件的绝对路径你都可以改掉。
这里,我保存成为了main.vbs文件
4).附加一个小功能,就是当main.vbs正常启动之后,也许检测tomcat的工作一直在后台进行,想关掉怎么办?并没有可视化界面,此处同样提供一段可运行的脚本文件,运行该文件,即可关掉前面正在运行的main.vbs:
dim WSHshellset WSHshell = wscript.createobject("wscript.shell")WSHshell.run "taskkill /im wscript.exe /f",o,true
保存成后缀为vbs文件即可。
5).附:要脚本文件和blat324对应配置包留邮箱哦~看到就回
也可以发邮件到smile326@qq.com提醒我。
程序猿何必为难程序猿(笑脸)
- 检测tomcat服务,实现崩溃自动重启并发送邮件提醒
- 检测tomcat服务状态,并能自动重启的代码
- 检测tomcat服务状态,并能自动重启的代码
- 检测tomcat服务状态,自动重启Tomcat
- 检测tomcat服务状态,自动重启Tomcat
- 检测tomcat服务状态,自动重启Tomcat
- 检测tomcat服务状态,自动重启Tomcat
- Python实现监控某个服务,服务崩溃发送邮件报告
- linux自动检测网站并发送邮件提醒
- 利用phpmailer自动发送邮件提醒
- 监控服务器端口,Down掉会自动重启,并发送邮件 Linux Shell
- 检测Tomcat运行状态,自动重启
- 定时 监控 shell 服务宕机自动重启,并发送短信通知
- Tomcat实现自动重启
- [selenium]实现自动登录163邮箱并发送邮件
- python实现自动监控网站并发送邮件告警
- python实现自动登录qq邮箱,写邮件并发送
- Linux下tomcat服务自动重启
- [TYVJ1013]找啊找啊找GF
- BZOJ 1211 [HNOI2004] 树的计数
- 银行卡三元素实名认证
- 侧边栏选中与取消
- PHP可逆加密解密算法
- 检测tomcat服务,实现崩溃自动重启并发送邮件提醒
- 收藏的一些干货
- 剑指-二维数组查找
- ACM解题总结——HihoCoder1237 (微软笔试题)
- Java中的接口
- sql 修改数据库表中字段类型和长度
- Druid连接池简单入门配置
- [spfa/dijkstra]poj3268 Silver Cow Party
- TYZ 8/23 物语