原文 脚本+批处理打造IIS监控器

首先说下我什么要写它,第一、它可以帮你做一件事,那就是随时给你监控你公司的网站服务器的状态,一旦你的网站出现问题不能访问了,它就会自动帮你重启IIS然后让死掉的网站活起来。第二、如果你公司的网站在你休假或者放假的日子里出了问题无法访问,它至少可以给你重启下IIS,让网站起死回生。
 
        该IIS监控器是由3个部分组成,一个批处理(主体部分),和两个VBS脚本(用于启动IIS和循环执行检查),它们3个互相配合起来就有了监控IIS状态的功能了。该程序会在c:\windows\system目录下生成"网站运行日志.log"的日志以便您查看网站的运行情况,其日志格式如下:
2010-01-28 星期四 13:03:59.23 网站正常运转。
 2010-01-28 星期四 13:04:50.85 网站出问题了! 
13:04:50.85正在重启IIS.....
第一个:批处理(网站运行状态监控器.bat)
@echo off
@title 网站运行状态监控器 『罗斌制作』 QQ:287727615
@setlocal enabledelayedexpansion 
::将第二个参数(IP加端口)传给%%i,第五个参数(PID号)传给%%j; 
for /F "usebackq skip=4 tokens=2,4" %%i in (`"netstat -ano -p TCP"`) do ( 
  echo   %%i     %%j   >>log.log
)
::设置一个变量str为0.0.0.0:80,如果在log.log中第二行发现存在0.0.0.0:80
::则表示网站正在运行,如果没有发现则表示网站已经关闭,执行重启。
@set str=0.0.0.0:80
@for /f "delims=" %%i in (log.log ) do (
    set /a num+=1
    if !num! epu2 set var=%%i
    if !num! epu2 set var=!var:~2,12!
)
@echo !var!
@if %str%==%var% (
@echo %date% %time% 网站正常运转。>>网站运行日志.log
        ) else (
@echo  %date% %time% 网站出问题了! >>网站运行日志.log
@echo %time%正在重启IIS..... >>网站运行日志.log
iisreset /restart /timeout:0 >>网站运行日志.log
@echo %time%正在重启服务器..... >>网站运行日志.log
@call 启动IIS脚本.vbs
 )
@ping 127.0.0.1 -n 2 >nul
@del log.log
 
批处理的内容我就不多做解释了,是我研究了近3天的时间才写出来的,如果你对这个批处理的写作感兴趣的话就加我Q 287727615 问我有行了。
 
第二个:脚本(启动IIS脚本.vbs )
Function KillProcess(proname)
 for each proc in getobject("winmgmts:\\.\root\cimv2:win32_process").instances_ 
  if strcomp(proc.name,proname)=0 then
   proc.Terminate 
  end if
 next 
 set proc=nothing
End Function      '定义一个结束进程的方法
set os = CreateObject("wscript.shell")     '以下的脚本操作步骤为,打开iis然后点击启动。
set oshell= createobject("wscript.shell")                   '这样做的目的只有一个,就是如果批处理没有启动成功
os.run "C:\WINDOWS\system32\inetsrv\iis.msc"    '则执行这个脚本来启动,以保证万无一失。
wscript.sleep 2000
os.sendkeys "{DOWN}"
wscript.sleep 2000
os.sendkeys "{TAB}"
wscript.sleep 2000
os.sendkeys "{ENTER}"
wscript.sleep 2000
os.sendkeys "{DOWN}"
wscript.sleep 2000
os.sendkeys "%a"
wscript.sleep 2000
os.sendkeys "{S}"
KillProcess "mmc.exe"
 
这个脚本只是针对一个网站而写的,如果你的IIS有多个网站的话可以看下面的《提示》来稍做修改就可以了
 
 
第三个:脚本(开始监控.vbs)
 
On Error Resume Next
Set objFSO = CreateObject("Scripting.FileSystemObject")
set copy1=createobject("scripting.filesystemobject") 
set fso=wscript.createobject("scripting.filesystemobject")
fso.copyfile "启动IIS脚本.vbs","C:\windows\system\启动IIS脚本.vbs" 
fso.copyfile "网站运行状态监控器.bat","C:\windows\system\网站运行状态监控器.bat" 
copy1.getfile(wscript.scriptfullname).copy("c:\windows\system\开始监控.vbs")
path="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\" 
set ws=wscript.createobject("wscript.shell") 
t=ws.regwrite(path & "IIS监控","c:\windows\system\开始监控.vbs")
do
ws.run "cmd /c 网站运行状态监控器.bat",vbhide
wscript.sleep 7200000  '每2个小时循环执行一次 网站运行状态监控器.bat 。
loop
 
这个脚本其实最主要的只是个控制” 网站运行状态监控器.bat “ 每2个小时运行一次的作用罢了。
 
 
《用法》
直接点击 开始监控.vbs 运行就可以了。 运行 开始监控.vbs 该程序会自动将该压缩包里的“开始监控.vbs ”  ,  “ 网站运行状态监控器.bat ”  , “ 启动IIS脚本.vbs ” 这个三个文件复制到system目录下,同时会增加一个组册表的启动项。让其开机启动。
《提示》
该程序只用于监控IIS的状态,也就是说,如果IIS停止工作那么该程序会在2个小时之内做出检测。一旦IIS不在工作,那么程序会自动为您启动IIS。
注意,由于程序的不灵活性,它不是拿到任何地方都能用的。需要稍作修改的地方是
os.run "C:\WINDOWS\system32\inetsrv\iis.msc"
wscript.sleep 2000
os.sendkeys "{DOWN}"  '打开IIS.msc之后按下 下 方向键
wscript.sleep 2000
os.sendkeys "{TAB}"    '然后按下 TAB 键
wscript.sleep 2000
os.sendkeys "{ENTER}"   '然后按下 回车  键
好了以上如果稍微有点VBS基础的人都能看得懂。自己稍做修改就能用了。

脚本+批处理打造IIS监控器的更多相关文章

  1. 使用批处理给IIS添加MIME类型

    原文 使用批处理给IIS添加MIME类型   @echo off set /p warn="警告:本脚本会清空全部站点原有MIME类型,输入y按回车继续,直接回车退出:" if & ...

  2. 批处理添加iis wpg、users对IIS的访问权限

    原文 批处理添加iis wpg.users对IIS的访问权限 上一篇,我们学习了如何使用批处理删除各种帐户在IIS中的访问权限.下面,我们来看看,如何通过批处理添加iis_wpg.users对IIS的 ...

  3. 批处理删除IIS的everyone、users的访问权限

    原文 批处理删除IIS的everyone.users的访问权限 以下批处理代码功能,实现的是,删除C盘的everyone.users用户对IIS的权限. 一.删除C盘的everyone的权限 cd/  ...

  4. Windows批处理 -- 打造MySQLCleaner

    批处理打造MySQLCleaner 1. 简介       在我们卸载MySQL数据库的时候,往往除了需要卸载软件,还需要删除各种注册表信息,隐藏文件,卸载服务,否则当我们再次安装MySQL时就会出现 ...

  5. 批处理打造MySQLCleaner

    #批处理打造MySQLCleaner ###1. 简介 在我们卸载MySQL数据库的时候,往往除了需要卸载软件,还需要删除各种注册表信息,隐藏文件,卸载服务,否则当我们再次安装MySQL时就会出现一些 ...

  6. [2015-11-23]分享一个批处理脚本,创建iis站点及程序池

    建站批处理 batch_createSites.bat @echo off rem 以管理员身份执行本脚本,可添加多条call 以建立多个站点 call path\to\createSites.bat ...

  7. Oracle的DBMS_OUTPUT.PUT_LINE用法及脚本批处理方法

    打印至控制台(无显示): BEGIN DBMS_OUTPUT.PUT_LINE('Hey look, ma!'); END; / 打印至控制台(有显示): SET SERVEROUTPUT ON BE ...

  8. Windows脚本\批处理命令学习笔记

    1.为新建变量赋值: set 变量=值 2.输出变量的值 echo %变量% 3.关闭批处理中命令行的显示(默认是显示命令行的) 在文件開始处增加:echo off 若需又一次显示:echo on 若 ...

  9. bat脚本批处理打war打包

    @echo =========================================== @echo 描述:打包脚本 @echo 作者:霍建国 @echo 日期:2018-03-13 @ec ...

随机推荐

  1. 最简单的历史Hibernate获得短暂的

    其实Hibernate本身就是一个单独的帧,不管它不需要web server或application server支持. 然而,最Hibernate简介已经加入了非常多的非Hibernate事,例: ...

  2. WPF 3D:使用GeometryModel3D的BackMaterial

    原文 WPF 3D:使用GeometryModel3D的BackMaterial 使用BackMaterial,我们可以定义3D物体的内部材质(或者说是背面),比如,我们定义一个四方体容器,外面现实的 ...

  3. OpenStack Dashboard

    OpenStackDashboard 为管理员和普通用户提供了一个图形化管理界面.用户能够通过该界面訪问.分配或者自己主动化分配基于云的资源.可扩展的设计使得与第三方产品和服务融合变得非常easy,比 ...

  4. 《实验数据的结构化程序设计》 2.4.4Calendar个人意见,寻求指引

    题目大意: 制作一个日历系统,输入年份.一些周年纪念日,及服务要求日期,依据要求日期输出,输出重要程度小于发生日期的周年纪念日. 题目地址: UVA  145 个人见解: 纯模拟,在闰年,输出顺序及输 ...

  5. Cordova探险系列(三)

    自从3.0之后.Cordova默认是关闭全部关于设备原生特性功能的,所以我们要通过加入插件来启动原生特性. 这里以Accelerometer(加速度感应器)为例,来学习怎样使用设备原生特性. 1.加入 ...

  6. [转载][NAS] 使用win8的“存储池”功能~

    之前自己用DQ77KB搭建一个小存储系统(帖子链接:http://www.chiphell.com/thread-567753-1-1.html),一直使用intel主板带的软RAID功能构建RAID ...

  7. [Windows Phone 8]如何解决Lumia手机无法进入系统或开启?

    原文:[Windows Phone 8]如何解决Lumia手机无法进入系统或开启? 摘要 相信有的人一定有遇过手机在更新的时候,齿轮转不停,过了好几小时还是一样,这就代表系统出现问题了,如今Nokia ...

  8. 详细说明XML分解(两)—DOM4J

    第一部分关于博客XML三接口,同时也为学习DOM4J该分析工具做准备.一般解析器基本上都实现了DOM和SAX这两组接口,DOM4J自然也不例外..DOM4J仅仅是经常使用解析器的当中一种,只是既然是实 ...

  9. Tuxedo学习门户网站

    中间件简介: 介于客户机和server之间的夹层,突破了传统的c/s架构,为构建大规模,高性能.分布式c/s应用程序提供了通信.事物,安全.容错等基础服务,屏蔽了底层应用细节,应用程序不必从底层开发, ...

  10. 关于委托:异常{ 无法将 匿名方法 转换为类型“System.Delegate”,因为它不是委托类型 }

    异常{ 无法将 匿名方法 转换为类型"System.Delegate",因为它不是委托类型 } 委托实际上是把方法名作为参数,但是若有好多个方法时,就要指明是哪个参数  查看如下代 ...