如何使用crt软件备份多台路由器设备,请教高手

来源:百度知道 编辑:UC知道 时间:2024/06/16 09:30:16
由于有多台设备,需要定期备份,需要手工挨个登陆到设备上去备份到指定的ftp服务器上或者tftp服务器上,现在想通过使用crt脚本完成自动备份。
# $language = "VBScript"
# $interface = "1.0"

Sub Main
crt.Session.Disconnect

Dim logfile
logfile = "d:\crt_log"& date()&"-"&Hour(Time())& Minute(Time())&".log"
crt.Session.LogFileName = logfile
crt.Session.Log True

crt.session.Connect("/telnet 192.168.1.1")
crt.Screen.WaitForString ">>User name:"
crt.Screen.Send "root" & vbCr
crt.Screen.WaitForString ">>User password:"
crt.Screen.Send "xxxxxxx" & vbCr
crt.Screen.WaitForString ">"
crt.Screen.Send "enable" & vbCr
crt.Screen.WaitForString "#"
crt.Screen.Send "back data tftp xxxxxxxxxxxxxxd" & vbCr
crt.Screen.WaitForString "#"
crt.Screen.Send "quit"

在CRT本身就有一个脚本录制的功能,你从用CRT telnet进路由之后,开始录制就行了,直到完成后就停止录制.
但是强烈建议你最好还是别选用这个脚本功能,因为非常容易出错的.原因在它的脚本中,我研究了一下,发现比说你是在Router>下录制的,那如果你选择自动执行脚本后,而当时路由器状态是在Router#下的话,就绝对会出错!另外如果路由器名称不一样的时候,也会出错!所以路由器名字不一样就不能用同一份脚本.
我将我随手录制的脚本给你分析下就知道了(只显示主要部分):
Sub Main
crt.Screen.Send chr(13)
crt.Screen.WaitForString "Router>"
crt.Screen.Send "en" & chr(13)
crt.Screen.WaitForString "Router#"
crt.Screen.Send "conf t" & chr(13)
crt.Screen.WaitForString "Router(config)#"
crt.Screen.Send "host r2" & chr(13)
crt.Screen.WaitForString "r2(config)#"
crt.Screen.Send "end" & chr(13)
crt.Screen.WaitForString "r2#"
crt.Screen.Send "copy run start" & chr(13)
crt.Screen.WaitForString "Destination filename [startup-config]? "
crt.Screen.Send chr(13)
crt.Screen.WaitForString "r2#"
crt.Screen.Sen