用批处理自动判断服务器网络故障并重新启动

近期遇到服务器网卡老是中断,怀疑网卡原因,禁用网卡再启用不行,必须要重新启动服务器才能正常通信,所以,考虑用脚本来监控网卡和实现服务器自动重新启动
先写vbs脚本来实现服务器自动重新启动
保存文件为: vb.vbs
---------------------------------------------------------------------------
'DownFlag是关机标志
'DownFlag=12 表示强制关闭计算机
'DownFlag=8 关闭计算机
'DownFlag=6 表示强制重新启动计算机
'DownFlag=2 表示重启计算机
'DownFlag=4 表示强制注销
'此处我们使用12,表示强制关闭计算机
DownFlag=6

set win32_OS=getobject("winmgmts:{(Shutdown)}//./root/cimv2").execQuery("select * from win32_operatingsystem where primary=true")
for each OS in win32_OS
OS.win32shutdown(DownFlag)
next
set win32_OS=nothing
----------------------------------------------------------------------------
 
再写批处理文件 shutdown.bat
---------------------------------------------------------------------------
@echo off
echo "服务器自动重启服务正在进行中......."
echo "停止服务请按 Ctrl+C"
:begin
ping 192.168.10.231 >ping.txt
rem echo %errorlevel%
if %errorlevel%==1 goto ping2
goto loop
 
:ping2
ping 192.168.10.25>ping.txt
rem echo %errorlevel%
if %errorlevel%==1 goto reboot
goto loop
 
:reboot
echo %date% %time% "服务器正在重新启动" >>errlog.log
echo %date% %time% "正在重新启动中...."
wscript vb.vbs
wscript vb.vbs
echo %date% %time% "已重新启动...."
goto loop
 
:loop
echo "正在删除日志文件errlog.log"
del /q errlog.log
sleep 60
goto begin
-----------------------------------------------------------------------------
有了这个bat就可以自动监控网卡是否正常了,我定的时间是60秒,你也可以自己设定
说明:
首先ping其他主机的方式来判断连接是否正常
我选用了ping2台主机进行检测正常,如果不通,那就是本地网卡有问题了
再直接调用vb.vbs (我这里调用2次是防止1次处理不成功),算是再次加载重新启动进程
在2003系统下是没有sleep.exe文件的,下载下来直接修改后缀名为exe就行了
把3个文件都保存为同目录里面,直接点shutdown.bat就可以运行了
最好的办法是将sleep.exe文件直接拷贝到system32目录就可以直接调用运行了
因为at和计划任务需要调用系统目录运行,便于at命令调用
可以使用at或者计划任务来运行此命令,让系统重新启动的时候加载此检测
工具下载: sleep下载
 
所有包下载:本文章的所有运行文件包--- 下载
声明:原创作品,谢绝转载
QQ:125869495

本文出自 “linux进阶屋” 博客,谢绝转载!

你可能感兴趣的:(职场,vbs,批处理,故障,休闲)