on error resume Next
Dim a
a = True
data="restart <span style="color:#ff6666;">tomcat8</span>------------>"
set WshShell = WScript.CreateObject("WScript.Shell")
set fs =createobject("scripting.filesystemobject")
Do While a
set http = CreateObject("Microsoft.XMLHTTP")
http.open "GET","<span style="color:#ff6666;">http://localhost/aeolusPro/oa/system/SysOnline</span>",false
http.send
if http.Status > 299 then
set ts =fs.opentextfile("<span style="color:#3366ff;">D:\tomcat_sysMsg</span>" & date & ".txt",8,true)
WshShell.Run("net stop <span style="color:#ff6666;">Tomcat8</span>")
WScript.Sleep(10000)
WshShell.Run("net start <span style="color:#ff6666;">Tomcat8</span>")
ts.write data
ts.write "error code:"
ts.write http.Status
ts.write "-------error time:"
ts.write now
ts.writeblanklines 2
ts.close
end if
WScript.Sleep(30000)
loop
以上为vb脚本程序,进行实时监控,复制并保存为vbs格式文件。
http://localhost/aeolusPro/oa/system/SysOnline为指向的一个可能的页面,如果错误异常或者当机(现象:500错误、内存溢出、异常停止服务...等),判断页面返回的状态码,若状态不为200,则表示该页面未正常返回,可能是tomcat服务出了问题,随后自动重启tomcat服务,并记录日志,把日志记录在D盘,日志文件以tomcat服务名和当前日期命名。以上代码是每隔30秒访问一次被监控的页面。
另外:
为了防止服务器重启,vbs脚本不再继续运行,需将此vbs文件放入任务计划中,设置成“在系统启动时运行”即可。
同时,还有一种情况,就是进程中的程序,有时候会有假死的现象,即不能关闭、也不能开启的任何操作。这时候就需要在条件判断体中添加执行语句语句WshShell.Run("taskkill /F /im Tomcat8.exe /T"),将进程彻底删除。
如果嫌扫描检测的时间30秒太长,可以自行调整执行速度。