开发者社区> 杰克.陈> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

简介: 原文 脚本+批处理打造IIS监控器 首先说下我什么要写它,第一、它可以帮你做一件事,那就是随时给你监控你公司的网站服务器的状态,一旦你的网站出现问题不能访问了,它就会自动帮你重启IIS然后让死掉的网站活起来。
+关注继续查看

原文 脚本+批处理打造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基础的人都能看得懂。自己稍做修改就能用了。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
SpringBoot系列教程web篇之全局异常处理
当我们的后端应用出现异常时,通常会将异常状况包装之后再返回给调用方或者前端,在实际的项目中,不可能对每一个地方都做好异常处理,再优雅的代码也可能抛出异常,那么在 Spring 项目中,可以怎样优雅的处理这些异常呢?
83 0
IO流中的字符输入输出流及try...catch处理流处理中的异常
使用字节流读取中文的问题 import java.io.FileInputStream; import java.io.IOException; /* 使用字节流读取中文文件 1个中文 GBK:占用两个字节 UTF-8:占用3个字节 */ public class Demo01InputStream
85 0
阿里云容器服务新建集群优化方案(更新版)-使用控制台创建与ingress绑定的SLB
本文为之前博文 阿里云容器服务新建集群优化方案:https://yq.aliyun.com/articles/696136 的补充,使用控制台可以更快速的创建于 ingress 绑定的VPC 类型 SLB
1223 0
opencv图像处理:CommandLineParser类
看到有几本新的opencv书出来,梳理一下之前没看到过的知识: CommandLineParser类:可以帮助管理需要输入的命令行参数 CommandLineParser的构造函数为: CommandLineParser parser(argc,argv,keys):...
2178 0
【SQL监控】SQL完全监控的脚本
【SQL监控】SQL完全监控的脚本                                                              ...
555 0
PLSQL_海量数据处理系列2_分区
2013-05-02 Created By BaoXinjian       Thanks and RegardsERP技术讨论群: 288307890 技术交流,技术讨论,欢迎加入 Technology Blog Created By Oracle ERP - 鲍新建
649 0
+关注
杰克.陈
一个安静的程序猿~
文章
问答
文章排行榜
最热
最新
相关电子书
更多
小程序 大世界
立即下载
15分钟打造你自己的小程序
立即下载
《15分钟打造你自己的小程序》
立即下载