中国教育和科研计算机网
EDU首页 |  中国教育 |   高校科技 |   教育信息化 |   CERNET
教育信息化

资讯 | 专题 会议 观点 专栏 访谈 企业 产品 CIO 技术 校园信息化 下一代互联网 IPv6视频课堂

中国教育网 > 教育信息化
您现在的位置: EDU首页 > 教育信息化 > 技  术 > 网络 > 交换技术
用批处理和VBS批量配置交换机
http://www.edu.cn   2010-07-16 中国教育和科研计算机网 作者:唐寿高 陶永 王洪涛

字体选择:【大】 【中】 【小】


批量配置交换机


  交换机的配置一般采用命令行的方式进行,我们试着用上面介绍的批处理和VBS配合来降低我们的工作量,通过批处理来生成配置所需要的VBS并且打开配置程序,通过VBS来实施具体配置工作,下面以telnet到一个交换机执行配置工作为例进行说明。

  打开telnet程序

  @echo off

  start telnet

  cscript /nologo conf.vbs

  自动写批量配置脚本

  通过打开telnet程序可以运行telnet并且可以执行conf.vbs脚本,但是很难实现批量配置,因为配置脚本是固定的,配置完成后无法更换到其它交换机继续工作,前面提到可以使用echo的>或者>>的功能将语句写到一个临时文件,就用这种方式将所需要配置的交换机IP改写,并且将配置命令一并写到一个临时脚本telnet_tmp.vbs中,然后再执行这个脚本,就能完成批量配置的功能。交换机IP地址所在的文件为ip.txt,则

  for /f %%i in (ip.txt) do echo sh.SendKeys "open %%i" >telnet_tmp.vbs

  即可改写需要登录的交换机IP,继续追加登录脚本

  echo sh.SendKeys "username{ENTER}">>telnet_tmp.vbs

  echo WScript.Sleep 300 >>telnet_tmp.vbs

  echo sh.SendKeys "password{ENTER}">>telnet_tmp.vbs

  WScript.Sleep 300让两行命令间增加300毫秒时间来等待交换机反应时间

  整合脚本文件

  通过自动写批量配置脚本并不能直接运行,还需要一些简单调整,如判断交换机是否在线以及增加一些简单的统计功能,下面是整理好的配置交换机的批处理文件:

  @echo off

  :wait

  color 0a

  cls

  set a=

  set/p a=请输入s或者q:

  if %a%==s goto :startconf

  if %a%==q goto :end

  goto :wait

  :startconf

  echo 交换机配置结果:>>result.txt

  for /f %%i in (ip.txt) do echo 正在扫描 %%i && echo 请等待........&& ping -n 1 -w 2 %%i -n 2|find "TTL">nul && echo 扫描%%i完成,正在执行配置工作... && echo set sh=WScript.CreateObject("WScript.Shell") >telnet_tmp.vbs && echo WScript.Sleep 300 >>telnet_tmp.vbs && echo sh.SendKeys "open %%i" >>telnet_tmp.vbs && echo WScript.Sleep 300 …… && echo sh.SendKeys "q{ENTER}">>telnet_tmp.vbs && start telnet && cscript //nologo telnet_tmp.vbs && del telnet_tmp.vbs && set /a count+=1 && echo %%i配置成功 && echo %%i配置成功>>result.txt

  cls

  echo ----------------结果说明---------------

  echo 配置完毕!

  echo 共配置活动的交换机:%count%台。

  echo 配置的结果保存在当前目录的result.txt中。

  echo ---------------------------------------

  echo 按任意键返回主菜单

  pause>nul

  goto :wait

  :end

  其他说明

  等待时间可以根据网络和交换机情况进行设定,使用SendKeys时根据所输入的字符不同,输入的方式也不同,如ctrl+z要用^z来代替等,如需要对未做任何配置的交换机进行配置,需要启用超级终端来配置,只需要将上面的telnet改成hypertrm.exe即可,当然,这需要修改脚本文件来设置超级终端的运行参数等,最好增加配置完成一个交换机按任意键后再跳到下一个交换机,因为配置过程需要将配置线改到另一个交换机。

  2008年我校宿舍网络一次性采购了170台交换机,由于种种原因,厂家调试完成后才发现SNMP的community全是读写权限,感觉很不安全,自己花了很大功夫将其全部改成只读,然后发现用户管理系统不能迫使用户下线,厂家说其1x认证需要community写权限才能迫使用户下线,于是写了上面的一段代码,后来再次出现安全问题,再次需要增加限制SNMP的host,通过修改中间的配置命令后双击,任务就完成了。

  对大量的交换机修改配置是一个非常复杂和繁琐的事情,原来配置过程经常会出现一些这样那样的错误,用了批处理之后,不仅仅提高了工作效率,而且再也不会出现任何问题了。

  (作者单位为安徽工业大学)

 

文章来源:《中国教育网络》杂志2010年7月刊

页面功能 【打印】 【关闭】 【我有话说

MOOC风暴来袭

版权所有:中国教育和科研计算机网网络中心 CERNIC,CERNET,京ICP备15006448号-16,京网文[2017]10376-1180号

关于假冒中国教育网的声明 | 有任何问题与建议请联络:Webmaster@staff.cernet.com