Неизвестная причина известной ошибки в скрипте perl - PullRequest
0 голосов
/ 23 декабря 2011

Я пишу следующий скрипт, чтобы прочитать список серверов из текстового файла им ssh и запустить команду ldd, чтобы получить версию, установленную на сервере.Единственная проблема - это ошибка, которая появляется после следующей ошибки: Неверное имя хоста :

adev@abclnxdev:[/home/adev/perl-scripts] {63} % perl try.pl
Net::SSH: Bad host name: abclnxtest01
 at try.pl line 21

, когда я вручную выполняю ssh для этого хоста.Он подключается.Вот скрипт:

#!/mu/bin/perl
use Net::SSH::Perl;
use warnings;

my $file = "server-list.txt";
my $usr = "user";
my $pwd = "password";
my $output_file = "GlibC-version.txt";

open(HANDLE, $file) or die("Cant open the file :( ");
@server_list = <HANDLE>;
close(HANDLE);
#debug_print_array(@server_list);

open(HANDLE, ">>$output_file"); #opening file for output.
foreach $host (@server_list)
{

my $ssh = Net::SSH::Perl->new($host);

$ssh->login($usr,$pwd,$ssh);
my($stdout, $stderr, $exit) = $ssh->cmd("ldd --version|grep ldd");
print HANDLE "----------------------------------";
print HANDLE "Hostname : $host";
print HANDLE "GLIBC Version : $stdout";
print HANDLE "----------------------------------\n\n";
}

1 Ответ

8 голосов
/ 23 декабря 2011

У вас есть новая строка в конце имени сервера.

Добавить:

chomp @server_list;

(И, кстати, лучше использовать более новый 3-аргумент open(); см. http://perlmaven.com/open-files-in-the-old-way.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...