步骤:

1:建立健康监测文件。文件内容随意,这里以healthcheck.aspx命名,内容是<span>hellow word</span>

2:利用vbs语言执行IIS重启

文件名称:AppPoolRecycle.vbs

注意:自行修改进程池的名称这里是“DefaultAppPool”

strComputer = "."
Set objWMIService = GetObject _
("winmgmts:{authenticationLevel=pktPrivacy}\\" _
& strComputer & "\root\microsoftiisv2")
'回收名为DefaultAppPool的应用程序池
Set colItems = objWMIService.ExecQuery _
("Select * From IIsApplicationPool Where Name = " & _
"'W3SVC/AppPools/DefaultAppPool'")
For Each objItem in colItems
objItem.Recycle
Next

2:利用VBS调用curl进行探测,利用grep对探测结果进行筛选

文件名称:IISchk.vbs

注意:

A:文件路径中不能有空格,自行修改探测的文件地址这里是http://localhost/healthcheck.aspx

B:本代码位置是C:\healthcheck

C:附件清单(文件夹curl里面有32位64位两个版本外部的curl.exe是32位;grep文件夹里是该软件的安装程序;AppPoolRecycle.vbs 重启脚本;IISchk.vbs检查脚本;curl.txtcurl结果文件;grep.txt grep结果文件;)

d:C:\ProgramFiles\GnuWin32\bin\grep.exe 这个是我的grep安装目录,路径不能有空格

E:建立计划任务周期执行IISchk.vbs脚本就可以了

Set objShell = CreateObject("Wscript.Shell")
'利用curl获取目标网页的http头信息
strcmd1 = "%comspec% /c C:\healthcheck\curl -I http://localhost/healthcheck.aspx -o c:\healthcheck\curl.txt"
'利用grep筛选出curl获取的关键行HTTP/1.1
strcmd2 = "%comspec% /c C:\ProgramFiles\GnuWin32\bin\grep.exe -i HTTP/1.1 c:\healthcheck\curl.txt > c:\healthcheck\grep.txt"
objShell.Run(strcmd1)
'等待500毫秒让strcmd1的文件写完,因为strcmd2需要这个文件
WScript.Sleep 500
objShell.Run(strcmd2)
'打开经过筛选后的grep.txt文本
Const ForReading=1
Dim strLine,strnewline
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile("c:\healthcheck\grep.txt", ForReading)
strLine = objTextFile.ReadLine
'去掉头尾的空格
strnewline = Trim(strLine)
'判断行是否等于HTTP/1.1 200 OK,如果不等于则运行c:\healthcheck\AppPoolRecycle.vbs
If not strnewline = "HTTP/1.1 200 OK" then
objShell.Run("c:\healthcheck\AppPoolRecycle.vbs")
End if

F:用到的文件

IIS状态监测(如果状态错误则重启IIS)的更多相关文章

  1. 【转载】 GPU状态监测 nvidia-smi 命令详解

    原文地址: https://blog.csdn.net/huangfei711/article/details/79230446 ----------------------------------- ...

  2. Tomcat 项目部署、账户配置、状态监测

    tomcat部署项目 方式一.自动部署(最常用) 直接把war包或部署的文件夹放到webapps下. tomcat启动后会自动监听webapps下的文件|目录,放入打包好的项目会自动部署,移除打包好的 ...

  3. Linux iostat监测IO状态

    Linux iostat监测IO状态 http://www.orczhou.com/index.php/2010/03/iostat-detail/

  4. Linux iostat监测IO状态(转)

    Linux iostat监测IO状态 2010-03-1  |  13:13分类:Linux,技术细节  |  标签:Linux  |  53,945 views Linux系统出现了性能问题,一般我 ...

  5. c#监测电脑状态

    public class DeviceMonitor { static readonly PerformanceCounter cpuCounter = new PerformanceCounter( ...

  6. 【zabbix】Windows服务器获取IIS站点以及程序池状态

    在使用zabbix做Windows服务器监控的时候遇到一个比较棘手的问题,检测IIS站点状态. 普通情况下,只要用浏览器访问iis站点测试一下返回码是不是200即可判断状态,但是我这次遇到的是iis使 ...

  7. intouch与PLC之间通讯状态监测和设置

    intouch与PLC进行通讯状态监测中,一般做法需要PLC来实施主动脉冲计数,或者bool变化来实现.本文通过上位机自带参数设置,实现对intouch通讯状态监视,将画面恢复初始状态,并及时弹窗报警 ...

  8. iNeuOS工业互联网操作系统,发布实时存储方式:实时存储、变化存储、定时存储,增加设备振动状态和电能状态监测驱动,v3.6.2

    目       录 1.      概述... 1 2.      平台演示... 2 3.      存储方式... 2 4.      设备状态和用电状态监控驱动... 3 1.   概述 本次升 ...

  9. C#后台程序重启IIS,发邮件通知

    应用场景:IIS网站挂掉,系统自动重启IIS,通知相关联系人: 主要代码: 监控类 public class monitoringiis { EmailSend send = new EmailSen ...

随机推荐

  1. JAVA-SpringMVC基于注解模式第一个应用

    项目文件结构 1. web.xml配置文件 <?xml version="1.0" encoding="UTF-8"?> <web-app x ...

  2. async和await的返回值——NodeJS, get return value from async await

    在ES6和ES5中promise的执行也有不同点(上述提到,ES6中promise属microtask:在ES5中,暂未接触到有api直接操作microtask的,所以.then的异步是用setTim ...

  3. ASP入门(十八)-访问Access中的数据库

    Northwind 数据库 这是一个微软为软件的使用者提供的一个练习用的数据库,它模拟了一个商贸公司日常业务流程所需要的一些数据. 并且网络上大部分的 SQL 语句的讲解都是以这个数据库为例子讲解的. ...

  4. 我的webrequest经验

    1 webrequest 是什么:编程方式模拟web请求,利用webrequest可以实现 相当于一个浏览器请求一个网页的效果,但是它始终是模拟请求, 与浏览器输入框输入网址请求不一样. 2 程序设计 ...

  5. ios 开发 ping

    在win 或 mac系统的终端下都有方便的ping命令来检测网络的连通性! 在iOS上可以使用苹果封装好的工具来开发ping连接测试 SimplePing 下载 1. 主要接口 //初始化一个地址 - ...

  6. Python取得系统进程列表

    一.上代码 import psutil for proc in psutil.process_iter(): try: pinfo = proc.as_dict(attrs=['pid', 'name ...

  7. 001-Go JSON处理

    在golang中提供的encoding/json包可以编码JSON以及解码JSON数据. 1.编码JSON 使用json包中的Marshal函数进行编码,源码如下: func Marshal(v in ...

  8. 【转】Window 通过cmd查看端口占用、相应进程、杀死进程等的命令

    转自:http://blog.csdn.net/jiangwei0910410003/article/details/18967441 一. 查看所有进程占用的端口  在开始-运行-cmd,输入:ne ...

  9. IOS (补充)触摸事件处理

    [1]事件的基本概念 UIEvent:事件,是由硬件捕捉的一个表示用户操作设备的对象. 分三类:触摸事件.晃动事件.远程控制事件 触摸事件:用户通过触摸设备屏幕操作对象.输入数据.支持多点触摸,包括1 ...

  10. JVM内的守护线程Deamon与用户线程User Thread

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6561771.html  一:守护线程Daemon 守护线程:Daemon在希腊神话中解作“守护神”,顾名思义就 ...