【发布时间】:2015-02-06 17:49:52
【问题描述】:
我似乎在 perl Net::Telnet::Cisco 中遇到 Autopage 和 more_prompt 问题(使用 Cisco 模块专门用于 --More-- 提示)。
我提交的命令正在超时,假设是因为它正在等待 --More-- 提示用户点击空格键。使用 more_prompt 的自动页面在匹配诸如 --More-- 之类的提示时应提交一个空格。我已经专门设置了 more_prompt 以便它匹配(至少我认为我的正则表达式匹配),但该命令似乎仍然超时。
有什么建议吗?
我的代码如下:
my $cmd = 'show interface';
sub telnet_mua {
my $telnet = Net::Telnet::Cisco->new();
$telnet->open("$_[0]");
$telnet->waitfor('/Username:/');
$telnet->print($un);
$telnet->waitfor('/Passcode:/');
$telnet->print($pw);
$telnet->waitfor("/$_[1]>>/");
my @output = $telnet->cmd(String => $cmd);
print @output;
};
telnet_mua("111.222.333.444", "testlab9400-2");
错误(整个脚本中的第 33 行是“my @output = $telnet->cmd(String => $cmd);”:
mua_inventory.pl 第 33 行命令超时
这是我手动 telnet 进入时的样子,包括 --More-- 提示:
testlab9400-2>> 显示int
--- ADSL 接口 ---
接口状态连接
9.0 DN-DN 无 RX/TX
9.1 DN-DN 无接收/发送
9.2 DN-DN 无接收/发送
9.3 DN-DN 无接收/发送
9.4 DN-DN 无接收/发送
--MORE--(空格=下一页,CR=一行,Q=退出)
另外,我尝试将 Autopage 使用的 more_prompt 设置为 '/^(--MORE--).*$/',但命令仍然超时。
【问题讨论】: