路由器(Router)是连接两个或多个网络的硬件设备,在网络间起网关的作用,是读取每一个数据包中的地址然后决定如何传送的专用智能性的网络设备,路由器最主要的功能为实现信息的转送。 在给交换机做配置变更或者日常检查过程中,经常会遇到需要大批量的修改或查看交换机命令的情况。
如果工程师一台台登陆交换机进行配置修改或检查,效率太低。
常用的CRT软件SecureCRT的脚本功能就可以做到批量配置或检查,SecureCRT提供了强大的脚本工具,我们可以编写vbs、js、pl、py脚本文件来实现我们的需求。
我这里介绍了使用SecureCRT通过vbs脚本批量备份cisco交换机配置的方法,实测可用。
此脚本可以根据你的需要修改,改成其他功能。
使用方法
1. 在D盘新建一个文件夹,命名为SW_Scripts,打开文件夹,新建list.txt,编辑文本文件,每行输入4列分别是:交换机ip 用户名 密码 enable密码
例:
192.168.1.100 user123 pwd123456 cisco123
192.168.1.101 user123 pwd123456 cisco123
……
有多少交换机就写多少行
2.新建backup.txt,编辑文本文件,将下文的交换机批量备份配置脚本内容复制到文本文件中,脚本中的目录、文件名、命令根据自己需求进行自定义修改,保存退出。将backup.txt更改为backup.vbs,确定。
3.在D盘SW_Scripts文件夹内新建一个log文件夹,用于记录操作过程。
4.打开SecureCRT,点击菜单栏的 脚本→执行,选择backup.vbs,执行。
5.查看log信息,检查备份文件。
脚本范例
交换机批量备份配置脚本:
# $language = "VBScript"
# $interface = "1.0"
Sub Main
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Dim fso,file1,line,str1,str2,params
Set fso = CreateObject("Scripting.FileSystemObject")
'设备列表和密码文件路径,运行前需要确认路径!
Set file = fso.OpenTextFile("D:\SW_Scripts\list.txt",Forreading, False)
crt.Screen.Synchronous = True
DO While file.AtEndOfStream <> True
line = file.ReadLine
params = Split (line)
'输出log文件路径,运行前需要确认log文件夹存在!
crt.session.LogFileName = "D:\SW_Scripts\log\" & params(0) & " @"& Year(Now) &"-"& Month(Now) &"-"& Day(Now) &".txt"
crt.session.Log(true)
'登录
crt.Session.Connect "/TELNET " & params(0)
crt.Screen.WaitForString "Username:"
crt.Screen.Send params(1) & vbcr
crt.Screen.WaitForString "Password:"
crt.Screen.Send params(2) & vbcr
crt.Screen.waitForString ">"
str0 = "enable"
crt.Screen.Send str0 & vbcr
crt.Screen.WaitForString "Password:"
crt.Screen.Send params(3) & vbcr
crt.Screen.waitForString "#"
'备份目前startup配置到tftp服务器
str1 = "copy startup-config tftp://192.168.1.111"
str2 = params(0) & "-config" & "@" & Year(Now) &"-"& Month(Now) &"-"& Day(Now) & ".cfg"
crt.Screen.Send str1 & vbcr
crt.Screen.WaitForString "]?"
crt.Screen.Send vbcr
crt.Screen.WaitForString "]?"
crt.Screen.Send str2 & vbcr
crt.Screen.WaitForString "#"
'登出
crt.Session.Disconnect
loop
crt.Screen.Synchronous = False
End Sub
注意事项
1.脚本先用测试交换机测试运行正常后方可批量执行。
2.建议分多个list.txt文件分批执行,不要一次性执行完所有设备。
3.根据交换机ios版本不同,部分waitForString可能不一样,比如登录步骤中,大部分交换机waitForString是Username:,但是也有的是username:,因此会造成脚本执行中断,需根据实际情况自行修改。
4.对于做AAA认证的交换机,有的可能没有enable密码,登录后跳过了>,直接进入了#,因此waitForString也需对应修改。
本文可以帮助您基本地设置和管理您的路由器。 |