Perl SSH进入设备

时间:2013-05-16 18:37:37

标签: perl ssh cisco-ios

我遇到了一个奇怪的问题,我想深究这个问题:

我有一个超过1000个CISCO设备的列表,我需要ssh进入并运行一些命令。所以在Perl中,我有以下代码:

my $scon = Net::SSH::Perl->new("192.168.110.45");
$scon->login($username,$password);
my ($stdout,$stderr,$exit)= $scon->cmd('show run');
print "\n$stdout\n";

以上代码可以显示我需要的输出。

但是,当我创建一个循环并尝试在循环中ssh每个设备时,我将$ stdout视为空白。

以下代码不起作用:

my @allhosts = `cat hosts_ip.txt | cut -d',' -f2`;
foreach my $ip (@allhosts) {
    my $scon = Net::SSH::Perl->new($ip);
    $scon->login($username,$password);
    my ($stdout,$stderr,$exit)= $scon->cmd('show run');
    print "$stdout\n";
}

上面的输出只是空白 - 它什么都不返回。

任何想法我做错了什么?

1 个答案:

答案 0 :(得分:0)

你见过PSSH吗?它是一个Python脚本,但它非常适合在许多主机上快速运行一些命令。如果你坚持使用Perl,它可能不是你想要的,但听起来这可能是一次性的任务。