У меня возникли странные проблемы, и я хочу, чтобы добраться до нижней части этого:Perl SSH в устройство
У меня есть список из более чем 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";
}
Выходной сигнал сверху просто пустым - это ничего не возвращает.
Любые идеи, что я делаю неправильно?
chomp @allhosts – frankc
Вы должны попробовать [Net :: OpenSSH :: Parallel] (https://metacpan.org/module/Net::OpenSSH::Parallel) – salva
Добавьте 'debug => true' в свой призыв к новый? – charlesbridge