我有一个奇怪的问题,我想深入了解:
我有一个超过 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";
}
上面的输出只是空白 - 它什么都不返回。
任何想法我做错了什么?