原文:https://blog.csdn.net/smile326/article/details/52293158

场景需求

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 expliciton error resume next dim str,str1str = "yisinian"do while 1set objXML = createObject("MSXML2.ServerXMLHTTP")set objFSO = createObject("Scripting.FileSystemObject")const ForAppending = 8objXML.open"get","http://localhost:9080/iCheck_sziit/ServiceTest",falseobjXML.send()str1 = objXML.responseText
if objXML.responseText = "" then if not objFSO.fileexists("log.ini") thenset objFile = objFSO.createTextFile("log.ini")objFile.closeEnd ifset fso = objFSO.openTextFile("log.ini",8)strnow = now createobject("wscript.shell").run "C:\apache-tomcat-6.0.44-1\bin\shutdowm.bat",0rem "发送邮件"createObject("wscript.shell").run "C:\blat324\full\sendmail.bat",0wscript.sleep 10*1000createobject("wscript.shell").run "C:\apache-tomcat-6.0.44-1\bin\startup.bat",0with 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 thenset objTextFile = objFSO.openTextFile("aaa.ini",ForAppending,True)if not objFSO.fileexists("aaa.ini") thenset objFile = objFSO.createTextFile("aaa.ini")objFile.closeEnd ifobjTextFile.writeline(objXML.responseText)objTextFile.closeelseset fso = objFSO.openTextFile("log.ini",8)strnow =now fso.writeline strnow&"    "&"------iCheck_sziit项目没有正常运行---------"fso.closeend if
end ifwscript.sleep 30*1000loop
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56

稍微解释一下,无限循环并通过末尾的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 WSHshell
set WSHshell = wscript.createobject("wscript.shell")
WSHshell.run "taskkill /im wscript.exe /f",o,true
  • 1
  • 2
  • 3

保存成后缀为vbs文件即可。

5).附:要脚本文件和blat324对应配置包留邮箱哦~看到就回 
也可以发邮件到smile326@qq.com提醒我。 
程序猿何必为难程序猿(笑脸)

检测 tomcat 挂掉,发送邮件相关推荐

  1. 检测tomcat 在CentOS 上的运行状态,发送邮件

    原文:https://blog.csdn.net/yuruixin_china/article/details/53634565 服务器环境:centos7.2 64位 tomcat8.5.6 tom ...

  2. java检测tomcat宕机_Tomcat意外宕机分析

    之前在网上看过一篇文章,是讲Tomcat进程意外退出的,我看完感觉好奇,自己也测试了下,果然是有这种问题,所以自己也借此总结一下. 先简单说下测试过程,先创建一个web服务启动 test.sh,内容如 ...

  3. tomcat监控脚本(监控进程,测试接口,告警动作为发送邮件)

    服务器环境:centos7.2 64位 tomcat8.5.6 tomcat 监控功能共需要两个脚本,如下: initMonitor.sh #!/bin/sh #初始化监控脚本相关变量 export ...

  4. 【2016-05-19】一次tomcat频繁挂掉的问题定位

    为什么80%的码农都做不了架构师?>>>    问题: 最近手中一个web项目频繁挂掉,tomcat进程跑着跑着就没了,catalina.out里也没有任何相关报错. 项目功能: 该 ...

  5. tomcat经常挂掉MySQL_tomcat 挂掉,假死无响应原因总结和解决方案

    tomcat假死原因 以前遇到tomcat莫名奇妙的假死了,没有任何的响应,然后重启后又可以了,隔段时间又假死了.以前不懂的处理和排除原因,纠结的半死.无从入手,都想砸电脑,小伙伴们有遇到过,我遇到过 ...

  6. tomcat服务器介绍之二 、session服务器实现方法

    上次讲到了session会话的绑定,通过nginx和apache(3种方式)实现:session会话的复制,通过DeltaManager和apache(mod_jk)实现:这次讲解基于msm实现ses ...

  7. linux定时任务之自动启动Tomcat失效问题排查

    首先,需要了解一下Linux定时任务的使用,可以参考我写的另一篇文章 https://blog.csdn.net/zxc_user/article/details/80658709 然后就是我今晚自己 ...

  8. Tomcat集群搭建超详细

    TOMCAT集群 目录  TOMCAT集群 1  1 集群 1  1.1 什么是集群 1  1.2 集群的特性 1  1.3 集群的分类 1  1.4 TOMCAT集群配置的优缺点 2  1.5 AP ...

  9. 生产环境WEB服务管理脚本之日志检测脚本

    环境说明: 公司是做在线教育的互联网企业,WEB架构为:前端使用LVS + Heartbeat做负载均衡,后端主要是Apache/Nginx + Tomcat,缓存有redis和Memcached,数 ...

最新文章

  1. poi插入图片浮于文字上方_Word插入手写签名
  2. 轮询没有收到的可能性_轮询(Polling)是什么?
  3. MySQL_存储引擎
  4. extjs 按钮小箭头展开panel_汽车按钮都是英文看不懂?视频教你认清车内所有按钮,看完秒懂...
  5. 宏图之下服务器维护,《鸿图之下》3月24日维护更新预告
  6. 再谈研发那些事——两项核心工作的区别与联系
  7. tbb::atomic和std::atomic的区别 废弃
  8. iostream头文件简单理解
  9. android 小米imei 空,[教程]小米2s IMEI刷机造成的丢失 恢复及写入教程 【申精】
  10. Oracle数据库的备份方法
  11. 关于TIdTCPClient的几种方法
  12. iOS输入框搜索节流输入框输入拼音的问题 (防抖)
  13. 基于服务器部署的OCR在线识别应用
  14. 热血传奇之周星弛[转载]【出处:未知】
  15. 获取今日头条街拍图片
  16. win7设置多用户登陆和修改3389端口、win10设置多用户登陆和修改3389端口
  17. 可以通过限定ip来限制用户重复登录么_美团和饿了么虽然每天都送红包,但有很大区别...
  18. 视网膜数据集(4)HRF
  19. 已解决AttributeError: ‘Document‘ object has no attribute ‘convertToPDF‘
  20. mybatis从零基础到增删改查数据库

热门文章

  1. 将北斗卫星授时(GPS时钟系统)技术应用数据采集系统
  2. 2022-4-9 Leetcode 912.排序数组
  3. 融云X-Meetup南京站 探讨实时通信架构的高质量设计
  4. Riru core is not installed
  5. 智慧园区/楼宇解决方案
  6. 修改MFC中菜单显示的文字
  7. 一次解决时区所有疑问
  8. [GIS原理] 9.3 地形特征分析
  9. 计算机远程控制的好处,如何远程控制电脑 远程控制电脑有什么作用【图解】...
  10. 与另一台计算机建立ipc,怎样通过IPC连接到另一台计算机?