我有问题。我有一个简单的期望脚本,我打电话到一个php脚本来登录到cisco终端服务器,在实验时间结束后清除vty行。逻辑很简单,如果用户存在,那么它只占用线路vty 0.如何在执行其他命令时发现错误?
如果用户不存在,则会出现问题......思科路由器只显示错误,指出%连接以清除某些内容并期望运行脚本的其余部分,这是不必要的,因为我正在管理10台路由器的实验室并加载需要大量时间的配置文件。
请告诉我如何从日志和结束脚本中读取错误,如果我得到该消息。
#! /usr/bin/expect -f
spawn telnet 192.168.2.1
set user [lindex $argv 0]
set pass [lindex $argv 1]
expect "Username:"
send "$user\r"
expect "Password:"
send "$pass\r"
expect "*>"
send "enable\r"
expect "*#"
send "clear line vty 0\r"
send "\r"
expect "*#"
send "copy tftp://192.168.2.3 running-config\r"
send "config\r"
send "\r"
expect "*#\r\n"
请发表您的脚本 –
%不能清除当前行 这是输出我得到一次它看到该行0是由他本人占用。我可以拒绝访问这一行,但我仍然不希望这个脚本在知道没有用户的情况下重新加载配置。再加上另外一件事情,那就是如何确定它期望的动态字符串,并根据该字符串发送一个命令...就像某个时候它将telnet到路由器时,它会得到“>”,而另外一些时候则会得到“#”,这会让一团糟。所以我想检查一下哪个字符串,然后发出相应的命令。 – RAY