все вобщем было хорошо, но возникла проблема, которую пытался решить сам - но так и не получилось. Скрипт подключается, выполняет команды, но переодически выдает ошибки и на n-ой стадии цикла заканчивает свою работу.
вот пример ошибок, которые переодически выводятся при запуске с ключем -W
| Цитата | Use of uninitialized value in substitution (s///) at /usr/local/lib/perl5/site_perl/5.8.9/Net/SSH/Perl.pm line 264. Use of uninitialized value in pattern match (m//) at /usr/local/lib/perl5/site_perl/5.8.9/Net/SSH/Perl.pm line 265. Use of uninitialized value in concatenation (.) or string at /usr/local/lib/perl5/site_perl/5.8.9/Net/SSH/Perl.pm line 267. Use of uninitialized value in concatenation (.) or string at /usr/local/lib/perl5/site_perl/5.8.9/Net/SSH/Perl.pm line 267. Use of uninitialized value in concatenation (.) or string at /usr/local/lib/perl5/site_perl/5.8.9/Net/SSH/Perl.pm line 267. Use of uninitialized value in numeric eq (==) at /usr/local/lib/perl5/site_perl/5.8.9/Net/SSH/Perl.pm line 271. Use of uninitialized value in numeric eq (==) at /usr/local/lib/perl5/site_perl/5.8.9/Net/SSH/Perl.pm line 271. Use of uninitialized value in numeric eq (==) at /usr/local/lib/perl5/site_perl/5.8.9/Net/SSH/Perl.pm line 293. Use of uninitialized value in numeric eq (==) at /usr/local/lib/perl5/site_perl/5.8.9/Net/SSH/Perl.pm line 49. Use of uninitialized value in pattern match (m//) at /usr/local/lib/perl5/site_perl/5.8.9/Net/SSH/Perl.pm line 84. Use of uninitialized value in pattern match (m//) at /usr/local/lib/perl5/site_perl/5.8.9/Net/SSH/Perl.pm line 84. Use of uninitialized value in pattern match (m//) at /usr/local/lib/perl5/site_perl/5.8.9/Net/SSH/Perl.pm line 84. Use of uninitialized value in pattern match (m//) at /usr/local/lib/perl5/site_perl/5.8.9/Net/SSH/Perl.pm line 84. Use of uninitialized value in pattern match (m//) at /usr/local/lib/perl5/site_perl/5.8.9/Net/SSH/Perl.pm line 84. Use of uninitialized value in pattern match (m//) at /usr/local/lib/perl5/site_perl/5.8.9/Net/SSH/Perl.pm line 84. Use of uninitialized value in pattern match (m//) at /usr/local/lib/perl5/site_perl/5.8.9/Net/SSH/Perl.pm line 84. Use of uninitialized value in pattern match (m//) at /usr/local/lib/perl5/site_perl/5.8.9/Net/SSH/Perl.pm line 84. Use of uninitialized value in pattern match (m//) at /usr/local/lib/perl5/site_perl/5.8.9/Net/SSH/Perl.pm line 84. Use of uninitialized value in pattern match (m//) at /usr/local/lib/perl5/site_perl/5.8.9/Net/SSH/Perl.pm line 84. Use of uninitialized value in concatenation (.) or string at /usr/local/lib/perl5/site_perl/5.8.9/Net/SSH/Perl.pm line 90. Use of uninitialized value in numeric eq (==) at /usr/local/lib/perl5/site_perl/5.8.9/Net/SSH/Perl/Packet.pm line 70. Use of uninitialized value in numeric eq (==) at /usr/local/lib/perl5/site_perl/5.8.9/Net/SSH/Perl.pm line 333. Use of uninitialized value in concatenation (.) or string at 1.pl line 40.
|
Библиотеки пересобирал кучу раз, в них мне кажется точно проблемы нет. погуглив пришел к выводу, что у меня в скрипте где то ошибка - но найти ее не могу ( Сильно не пинайте за кривой код, перл начал читать спецом, чтобы написать пару нужных скриптов. вот пример скрипта:
| Цитата | #!/usr/bin/perl
use Net::SSH::Perl ();
open(BASE,"< ssh.txt"); @ssh=<BASE>; close(BASE); @tmp=(); $cmd='w;last -n 10';
foreach $str1 (@ssh) { $res=0; $out=0; $err=0; $exit=0; chop $str1; @tmp=split(/:/,$str1); $user=$tmp[0]; $pass=$tmp[1]; $host=$tmp[2]; chomp $host; chomp $user; chomp $pass;
eval{ $ssh = Net::SSH::Perl->new ($host)}; $res = 1 if $@; if($res==1) { open (BAD,">>bad.txt") || die "err\n"; print BAD $str1."\n"; close (BAD); } else{ eval{$ssh->login($user, $pass); ($out, $err, $exit) = $ssh->cmd($cmd)}; open (GOOD,">>good.txt") || die "err\n"; print GOOD "login:pass---> ".$str1."\n".$out."\n"."--------------\n"; close (GOOD); } }
|
|