设为首页 收藏本站
查看: 1531|回复: 0

[经验分享] 脚本+批处理监控IIS服务器

[复制链接]

尚未签到

发表于 2018-12-9 07:34:17 | 显示全部楼层 |阅读模式
  脚本+批处理打造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基础的人都能看得懂。自己稍做修改就能用了。
  本文出自 “罗斌个人原创天地” 博客,请务必保留此出处http://luobin.blog.运维网.com/882147/271441


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-649184-1-1.html 上篇帖子: xp下asp.net开发环境配置 iis安装教程 下篇帖子: IIS发布网站配置步骤
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表