2011-12-22 89 views
0

我正在编写以下脚本以从文本文件读取服务器列表中的ssh给他们并运行ldd命令来获取安装在服务器上的版本。 唯一的问题是,我看到下面的错误的错误,说:坏主机名未知原因在Perl脚本中发生已知错误

[email protected]:[/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"; 
} 

回答