分享你我的心得.
共乘一片美好网络.

服务器应用自动重新启动IIS批处理

用bat实现重新启动服务器的IIS服务器
网站不知何缘故,运行一段时间老是挂掉,重新启动IIS又恢复正常。
这种情况发生一次两次也就算了,可恶的是天天发生,总不能天天跟IIS作斗争吧。
想偷懒,就得动脑筋,找批处理。
设想:写一个批处理,每小时重新启动一次IIS,运行24次。
                 在做一个任务计划,每天运行一次这个批处理
技术储备:
               IIS重新启动的dos命令:iisreset /restart
               延时的命令:建立一个.vbs文件,内输入命令:wscript.sleep(20000)
               在dos下调用.vbs文件:cscript     s.vbs
               循环命令:FOR /L %variable IN (start,step,end) DO command [command-parameters]
实现:
建立一个.vbs文件,如s.vbs
*************************************************
wscript.sleep(3600000)
*************************************************
说明:wscript.sleep(1000) 表示延时1秒

建立一个.bat文件,如a.bat
***********************************
for /l %%a in (1,1,24) do (
iisreset /restart
cscript //nologo s.vbs
time /t
)
***********************************
说明:for /l %%a in (1,1,24) do 表示循环执行24次
               cscript //nologo s.vbs 表示调用执行s.vbs文件,//nologo表示不显示logo版本信息,不带此参数
              亦可,不影响程序执行
                                                                                                                            by feng1725
附:
实际上Windows自带的计划任务可以完成每小时运行一次任务的要求
新建一计划任务,建完后,右击,计划任务属性–》日程安排–>高级
设置开始日期 勾选重复任务 设置每××小时 持续时间××天
建立一个.bat文件,如a.bat
***********************************
iisreset /restart
***********************************
注意:计划任务如果启动失败,可以查看日志查找原因

检查“任务计划”的日志
“任务计划”在 %SystemRoot% 文件夹(通常为 C:\Windows)中维护一个日志文件 – SchedLgU.txt。 您可从任务计划窗口中通过以下方法来查看日志:单击高级(菜单栏),然后单击查看日志。
日志文件的大小是 32KB,当日志文件达到其最大大小时,它自动从文件的开头开始记录新信息并覆盖旧的日志文件信息。
第一版

引用内容:
@echo off
c:
cd C:\vbs\iis
wget -s –spider -o iis.log  ht003.newhi.net
grep "HTTP request sent, awaiting response…"  iis.log |gawk ‘{print $6,$7}’ >iisstat.log

set /p iislog=<iisstat.log

if "%iislog%"=="" goto iisreset

if "%iislog%"=="200 OK" goto iisok

:iisreset
iisreset&iislog.bat

:iisok
echo %iislog%

第二版

引用内容:
@echo off
c:
cd C:\vbs\iis
for /f %%i in (‘netstat -an ^|wc -l’) do set max=%%i
if "%max%" GEQ "3582" goto :iisreset
wget -s –spider -o iis.log  ht003.newhi.net
grep "HTTP request sent, awaiting response…"  iis.log |gawk ‘{print $6,$7}’ >iisstat.log

set /p iislog=<iisstat.log

rem if "%iislog%" NEQ "200 OK" goto iisreset
rem if "%iislog%" EQU "200 OK" goto iisok
if "%iislog%"=="" goto iisreset
if "%iislog%"=="200 OK" goto iisok

:iisreset
for /f %%i in (‘udate +%%Y-%%m-%%d’) do set logdata=%%i
for /f %%i in (‘udate +%%H:%%M’) do set logtime=%%i
echo 在%logdata% %logtime% 连接数%max% 重新启动IIS >> iisreset.log
iisreset

:iisok
echo WEB服务器状态为%iislog%
echo 现在的连接数为%max%

以上脚本需要安装CYGWIN
此脚本不是简单的查看服务状态,而是通过判断动态网页返回值来判断.这样可以更准确,更及时彻底的让服务器对客户请求进行快速响应.

赞(0)
未经允许不得转载:小叶白龙博客 » 服务器应用自动重新启动IIS批处理
分享到: 更多 (0)

评论 132

评论前必须登录!