参考:
http://www.lingchenliang.com/post/1799.html
32位的windowd7中在CRT6.2里手动输入IP能正常ssh登迈普交换机路由器,当使用以前的配置备份脚本如下登录就报错(注:params(3)密码(2)用户名(1)IP)
cmd = "/SSH2 /L " & params(2) & " /PASSWORD " & params(3) & " /C 3DES /M MD5 " & params(1)
/C定义该会话使用的加密方式,/M
网上查询需要使用secureCRT8以上的版本,但是由于操作系统是32位的,没有找到合适的版本一直未能解决。后来再搜索迈普交换机配置版本脚本中发现有不一样的登录命令,同样的crt如下脚本就能正常登录
cmd = "/SSH2 /PASSWORD "& params(3) & " " & params(2) & "@" & params(1)
取消了参数/C :定义该会话使用的加密方式,
# $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("E:\sw.txt",Forreading, False)
crt.Screen.Synchronous = True
DO While file1.AtEndOfStream <> True
'读出每行
line = file1.ReadLine
'分离每行的参数
params = Split (line)
'SSH到这个设备上
cmd = "/SSH2 /PASSWORD "& params(3) & " " & params(2) & "@" & params(1)
crt.Session.Connect cmd
crt.screen.Send Chr(13)
crt.Screen.WaitForString "#",8
crt.session.LogFileName = "E:\backup\" & params(0) & ".txt"
crt.session.Log(true)
'备份目前dis cu配置
str1 = "show run"
crt.Screen.Send str1 & vbcr
str2 = "dis cur"
crt.Screen.Send str2 & vbcr
' crt.Screen.WaitForString " version "
crt.Screen.Send " "& chr(13)
'备份完成后退出
crt.Screen.WaitForString "> ",2
crt.Session.Disconnect
loop
crt.Screen.Synchronous = False
End Sub
进入交换机后执行了华三和迈普的查询配置命令,由于设备不同其中一条会报错,但是免去了将设备文件内容分不同厂商来处理的麻烦。
参考:http://blog.chinaunix.net/uid-22776959-id-5708509.html
使用以下函数可以解决以上不同设备连续自动备份
Dim SwitchKey
SwitchKey=crt.Screen.WaitForStrings("h3c>","maipu#",5)
Select case SwitchKey
case 1
str1 = "dis cur"
crt.Screen.Send str1 & vbcr
case 2
str1 = "show run"
crt.Screen.Send str1 & vbcr
case else
MsgBox "未知设备"
End Select