因公司的某台服务器最近网络一直不稳定,但是网络又不能断,至于原因大家都懂的。无奈之下,新加一个3G无线网卡,但是当本地的网络不稳定时,无法自动切换到本地网卡,无法预知网络运行状态,一时头大。。。。。无奈之下,上网查了N多资料,写了个批处理,配合公司现有资源,实现自动切换网络,并实时报警

环境介绍:

服务器、路由器等均接UPS,无需担心断电问题,唯一担心就是本地网络断线、不稳定等问题

闲话少说,上批处理

批处理之一:

@echo off
#当本地网络不能访问外网时,自动切换到3G无线网卡 >nul 2>nul
#2011-09-09   >nul 2>nul
#ver:1.5       >nul 2>nul
@echo ------------现在使用的是本地网络--------------
:one
ping -S 192.168.XXX.XXX -n 2  www.qq.com >nul 2>nul&&goto ok||goto no
:ok
@echo  网络连接正常!!!
goto one
:no
@echo  本地网络连接失败,正在切换网卡....
echo %date% %time% 本地网络连接失败,正在切换网卡.... >> G:\log.txt
start G:\本地网络异常.url (调用短信报警接口)
start G:\计时10分钟.bat     (调用计时)
ping 127.0.0.1 -n 20 >nul     
devcon disable = *DEV_1073*  >nul 2>nul && @echo  网卡切换成功!
echo %date% %time% 成功切换到3G网卡.... >> G:\log.txt
@echo ------------现在使用的是3G无线网络--------------
:two
ping -S   XXX.XXX.XXX.XXX -n 2 www.qq.com  >nul 2>nul&&goto yes ||goto not
:yes
@echo  3G无线网络连接正常!!!
goto two
:not
@echo  3G网络连接失败,正在切换到本地网卡....
devcon disable = *DEV_1073*  >nul 2>nul
devcon enable = *DEV_1073*  >nul 2>nul && @echo  网卡切换成功!
echo %date% %time% 3G网络异常,成功切换到本地网卡.... >> G:\log.txt
@echo ------------现在使用的是本地网络--------------
ping -S 192.168.XXX.XXX -n 2 www.qq.com >nul 2>nul&&goto ok||goto down
:ok
@echo  网络重新连接,一切正常!!!
ping 127.0.0.1 -n 10 >nul
start G:\3G网络异常.url
goto one
:down
exit

批处理之二

计时10分钟.bat

@echo off
echo ================计时10分钟===================
echo %date% %time%
echo  10分钟后自动重启网卡,切换到本地网络
ping 127.0.0.1 -n 600 >nul
echo %date% %time%
goto begin
:begin
@echo 网卡重启中
devcon disable = *DEV_1073*  >nul 2>nul
devcon enable = *DEV_1073*   >nul 2>nul  && @echo 网卡重启成功
ping 127.0.0.1 -n 10 >nul
ping -S 192.168.XXX.XXX -n 2 www.qq.com >nul 2>nul&&goto ok||goto not
:ok
start G:\3G网络运行10分钟.url
echo %date% %time% 3G网络运行10分钟,重新启用本地网卡.... >> G:\log.txt
:not
exit
pause
 

因无法采用修改路由优先级的方法来切换网卡,本文采用把网卡禁用掉,系统会自动使用另一可用的网卡,同时利用公司的短信报警接口,实现实时报警,并记录日志

测试结果如下:

前提:两个网络都可正常上网

1.默认使用本地网络进行通讯,3G网络作为备用
2.当本地网络不能访问外网时,本地网卡被禁用,自动切换到3G无线网络上
3.当3G无线网络不能使用时,重新启用本地网卡,使用本地网络进行通讯(此条件必须是在2与3之间本地网络已经恢复正常)
4.若在任何时候本地网络通讯正常,直接自动切换到本地网络,优先使用本地网络(本地网卡没有被禁用)

关于本批处理本人仍有一些疑问,希望大牛们帮忙

如果本地网络异常,自动切换到3G,10分钟过后又切回去,这些一切都正常,使用的是本地网络,但是批处理却一直停留在  “3G无线网络连接正常”的界面,如果本地网络再次中断,就不能再切换了