【发布时间】:2014-06-18 17:04:21
【问题描述】:
在测试了几个使用 PERL 发送 SSH 命令的模块后,我选择了 Net::SSH::Expect 模块(能够发送多个命令以实现唯一连接)
我还在测试它的一些功能,这是我的代码:
use Net::SSH::Expect;
my $user="myuser";
my $host = "126.30.186.249";
my $passwd = "mypasswd";
my $ssh = Net::SSH::Expect->new(host => "$host", password=> "$passwd", user => "$user", raw_pty => 1 );
my $login_output = $ssh->login();
$ssh->send("sh arp");
my $line ;
while ( defined ($line = $ssh->read_line()) ) {
print $line . "\n" ;
}
这是我的问题:当使用“exec”函数而不是“send”时:
sh arp
Protocol Address Age (min) Hardware Addr Type Interface
Internet 126.30.186.3 112 0080.9f8b.fc1a ARPA GigabitEthernet0/1.186
Internet 126.30.186.6 163 0080.9f8b.fc1a ARPA GigabitEthernet0/1.186
Internet 126.30.186.247 - e4c7.2291.5181 ARPA GigabitEthernet0/1.186
Internet 126.30.186.248 33 885a.9291.c7e1 ARPA GigabitEthernet0/1.186
Internet 126.30.186.249 - 0000.0c07.ac65 ARPA GigabitEthernet0/1.186
Internet 126.30.186.250 - 0000.0c07.ac66 ARPA GigabitEthernet0/1.186
Internet 126.30.187.241 38 0017.e05d.b144 ARPA GigabitEthernet0/1.230
Internet 126.30.187.242 96 0012.dada.65c1 ARPA GigabitEthernet0/1.230
Internet 126.30.187.243 96 f025.7275.63c1 ARPA GigabitEthernet0/1.230
Internet 126.30.187.250 - 0000.0c07.ac00 ARPA GigabitEthernet0/1.230
Internet 126.30.187.251 - e4c7.2291.5181 ARPA GigabitEthernet0/1.230
**--More--**
这个“MORE”提示有问题。 如您所见,我尝试使用“send”并进行了一个while循环。给出的结果是相同的,但没有 --More-- 提示。 我需要跳过 "more" 提示并查看所有结果。 Net::OpenSSH 在发送“捕获”时给了我所有的结果。 我搜索了自动跳过“更多”提示的任何功能......但没有结果:( 谁可以帮我这个事 ?谢谢。
【问题讨论】:
-
一位朋友告诉我,在发送其他命令之前,先在路由器上使用命令“term le 0”。但我不能让它与其他命令一起工作。谁能帮忙?
-
您是在问如何从输出中删除
**--More-**提示?