您的位置:首页 > 其它

使用SecureCRT批处理备份所有交换机路由器配置脚本

2016-01-26 10:23 1316 查看
测试了SecureCRT脚本批量执行备份cisco交换机或者路由器配置文件的功能。测试通过(成功批量备份28台交换机,时间小于1分钟)。

此脚本可以根据你的需要修改,改成其他功能,希望有需要的同学扩展思路。

使用SecureCRT对所有交换机路由器批处理执行WR命令的脚本

使用方法:

1、 在D盘新建一个文件夹,命名为SWbackup,打开文件夹,新建list.txt,编辑这个文本文件,每行输入3列分别是:交换机ip 密码 enable密码;
例如:192.168.1.1 cisco cisco(有多少交换机就写多少行)
2、将下载回来解压后的 SecureCRT对所有交换机路由器批处理执行WR命令的脚本.vbs复制到D盘SWbackup文件夹内;

3、在D盘SWbackup文件夹中新建一个log文件夹,用于保存配置文件。然后再新建一个以日期为名字的文件夹用于区别多个备份。目录结构例如:d:\SWbackup\log\20110810\

4、打开SecureCRT,点击菜单栏的 脚本-执行,选择下载回来解压后的 备份所有交换机配置批处理脚本.vbs,点执行。

脚本中的目录、文件名、命令,大家可以自己改啊,想偷懒就自己研究一下。很简单的。
更改方法:右键点击 备份所有交换机配置批处理脚本.vbs,点 编辑。脚本内容:=============================================================================================# $language = "VBScript"
# $interface = "1.0"
'本脚本示范:从一个文件里面自动读取设备IP地址,密码等,自动将设备配置备份
Sub Main
'打开保存设备管理地址以及密码的文件
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Dim fso,file1,line,str1,params
Set fso = CreateObject("Scripting.FileSystemObject")
Set file1 = fso.OpenTextFile("d:\SWbackup\list.txt",Forreading, False)
crt.Screen.Synchronous = True
DO While file1.AtEndOfStream <> True
'读出每行
line = file1.ReadLine
'分离每行的参数 IP地址 密码 En密码
params = Split (line)
crt.session.LogFileName = "d:\SWbackup\log\20120331\" & params(0) & ".txt"
crt.session.Log(true)
'Telnet到这个设备上
crt.Session.Connect "/TELNET " & params(0)
'输入telnet密码
crt.Screen.WaitForString "Password:"
crt.Screen.Send params(1) & vbcr
'进特权模式
crt.Screen.Send "enable" & vbcr
crt.Screen.WaitForString "Password:"
crt.Screen.Send params(2) & vbcr
crt.Screen.waitForString "#"
'备份目前runing-config配置
str1 = "show run"
crt.Screen.Send str1 & vbcr crt.Screen.WaitForString " --More-- " crt.Screen.Send " " & vbcr
'备份完成后退出
crt.Screen.waitForString "!" & vbcrlf & "end"
crt.Session.Disconnect
loop
crt.Screen.Synchronous = False
End Sub
'list.txt需要先做好。每行3列分别是:交换机ip 密码 enable密码。例如:192.168.1.1 cisco cisco,有多少交换机就写多少行======================================================================================================

有cisco交换机配置中末尾部分不是: ! end 。这样的话脚本执行会出现报错。只要把
'备份完成后退出
crt.Screen.waitForString "!" & vbcrlf & "end"
改为crt.Screen.waitForString "end" ,就可以顺利执行了。

from: http://blog.sina.com.cn/s/blog_4ae95c270101smz8.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: