但是强烈建议你最好还是别选用这个脚本功能,因为非常容易出错的.原因在它的脚本中,我研究了一下,发现比说你是在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.Send "exit" &chr(13)
End Sub
你可以发现主要是靠这2句话:
crt.Screen.Send
crt.Screen.WaitForString
前一句是向终端发送什么字符,其中 &chr(13)是回车的意思.
问题在与后面那句,等待出现的字符要求是100%一样,否则绝对等下去,那如果万一你路由器名称不一样,就不执行下去了.由此也可以看出这地方还容易牵扯出其他问题.
当然,你有信心的话,也不是不可以用这脚本.但是最好写好脚本后,再编辑一次,根据自己特殊的地方将crt.Screen.WaitForString 等带出现的字符改为合适自己的字符吧!
你要等3分钟的话,就看你3分钟之后会出现什么提示符了.
crt.Screen.WaitForString "3分钟后才会出现的字符"
crt.Screen.Send "exit" &chr(13)
end sub
备份时用命令show configuration | display set保存下来是可以直接刷的配置。如果你现在已经无法再备份,那就手动改吧。比如:
interfaces {
e1-0/0/0 {
unit 0 {
family inet {
address 10.10.225.170/30
}
family mpls
}
每条前面加set,然后把括号一级级打开。写成:
set interfaces e1-0/0/0 unit 0 family inet address 10.10.225.170/30
set interfaces e1-0/0/0 unit 0 family mpls
备份交换机配置要加TFTP服务器,然后下载配置文件到本地。如果带命令行配置的交换机,比如说华为,思科这类,可以运行display cur/show run这些命令显示出全部的配置信息,然后全部拷贝出来,粘贴到一个文本文件里面做为备份。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)