欢迎来访~

交换机批量备份配置脚本

背景

在给交换机做配置变更或者日常检查过程中,经常会遇到需要大批量的修改或查看交换机命令的情况。
如果工程师一台台登陆交换机进行配置修改或检查,效率太低。
常用的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&nbsp;
loop
crt.Screen.Synchronous = False&nbsp;
End Sub

 

注意事项

1.脚本先用测试交换机测试运行正常后方可批量执行。
2.建议分多个list.txt文件分批执行,不要一次性执行完所有设备。
3.根据交换机ios版本不同,部分waitForString可能不一样,比如登录步骤中,大部分交换机waitForString是Username:,但是也有的是username:,因此会造成脚本执行中断,需根据实际情况自行修改。
4.对于做AAA认证的交换机,有的可能没有enable密码,登录后跳过了>,直接进入了#,因此waitForString也需对应修改。
 
如果在使用过程中出现报错或者其它问题,欢迎留言,我会尽量帮忙解决。
 
 
赞(2)
可附来源转载:一只北极熊 » 交换机批量备份配置脚本

富强、民主、文明、和谐、自由、平等、公正、法治、爱国、敬业、诚信、友善