俺们在IDC有好几台服务器,每台服务器(window2003+IIS6)挂有20多个网站,现在部分客户要求24小时开通网站,而部分客户同意上述时间关闭网站。如何是手工操作,那可累死俺们!每天晚上专心看奥运的时候,还担心到点要关网站了,每天早上起的比鸡早,远程登陆开启网站。经过两天的煎熬,终于在google和MVP的交流总结出自动开启和关闭网站的方法!
方法有两种:
方案一:权限控制自动开关网站
需要24小时开通的网站不做处理,把奥运期间晚上需要临时关闭的网站放到一个文件里面
如:D:\website\test.txt
批处理文件如下(停止网站)
@echo off
for /f "usebackq tokens=*" %%a in ("d:\website\test.txt") do (
echo y|cacls "%%a" /d everyone
)
批处理文件如下(开启网站)
@echo off
for /f "usebackq tokens=*" %%a in ("d:\website\test.txt") do (
echo y|cacls "%%a" /g everyone:f
)
由于网站能访问需要erverybody权限,删除erverybody权限能直接导致网站因权限不够而不能访问,
这样就能顺利达到目的,接下来只要把这两个文件加入的计划任务中即可。
方案二:通过IIS自带脚本实现
由于想我们这种ASP/JSP/.NET,什么网站都有,而且放置位置比较凌乱的服务器来着,按第一种方法处理起来比较困难。所以我又找到了一种更简单的方法,用IIS自带的VBS工具adsutil.vbs。
批处理文件如下(停止网站)
C:\Inetpub\AdminScripts\adsutil.vbs STOP_server W3SVC/1237755992
C:\Inetpub\AdminScripts\adsutil.vbs STOP_server W3SVC/1739915248
批处理文件如下(开启网站)
C:\Inetpub\AdminScripts\adsutil.vbs START_server W3SVC/1237755992
C:\Inetpub\AdminScripts\adsutil.vbs START_server W3SVC/1739915248
把上面的批处理加入计划任务即可,W3SVC/后面的数字是网站的标识符。嘿嘿,这多简单啊
不过注意win2003和win2000是有区别的。win2000的方法如下
批处理文件如下(停止网站)
C:\Inetpub\AdminScripts\stopweb.vbs -a 31,32
C:\Inetpub\AdminScripts\stopweb.vbs -a 5,52
批处理文件如下(开启网站)
C:\Inetpub\AdminScripts\startweb.vbs -a 31,32
C:\Inetpub\AdminScripts\startweb.vbs -a 5,52
数字同样是网站的标识符,如果不知道标识符是什么的话,看看网站日志存放空间的哪个文件夹W3SVC11就知道了。对11就是这个网站的标识符。嘿嘿,当然你写个程序那当然最完美啦!关adsutil.vbs脚本的更多用途。可以去百度或GOOGLE找找