Я сделал свой сценарий, который подключается к моему коммутатору, но проблема в том, что при просмотре только часть говорит, остальное отображается как размер (--More). Как я могу сделать, чтобы просмотреть все настройки и спасибоОтображение части конфигурации (--Подробнее)
use Net::OpenSSH;
use warnings;
use Expect;
my $password = 'admin';
my $enable = '';
my $ip = '192.16.25.39';
my $username='user';
my $ssh = Net::OpenSSH->new("$username:$password\@$ip", timeout => 200) ;
$ssh->error and die "unable to connect to remote host: ". $ssh->error;
my $output = $ssh->capture({stdin_data => "enable\n"."admin%\n"."show vlan"."\n"});
if ($output) {print $output . ' ';}
my $line;
print "\n";
# closes the ssh connection
$ssh->close();
Я попытался это с модулем Expect:
use Net::OpenSSH;
if ($output) {
print $output . ' ';
my $expect = Expect->init($output);
$expect->raw_pty(1);
#$expect->debug(2);
my $debug and $expect->log_stdout(1);
while(<$pty>) {
print "$. $_ "
}
}
, который производит эту ошибку:
Can't bless non-reference value at /usr/local/share/perl5/Expect.pm line 202 (#1) (F) Only hard references may be blessed. This is how Perl "enforces" encapsulation of objects. See perlobj. Uncaught exception from user code: Can't bless non-reference value at /usr/local/share/perl5/Expect.pm line 202. at /usr/local/share/perl5/Expect.pm line 202. Expect::exp_init("Expect", "\x{d}\x{a}witch>enable\x{d}\x{a}password:\x{d}\x{a}switch#show vlan\x{d}\x{a}\x{d}\x{a}VLA"...) called at b.pl line 19 "
Выход «--More--» звучит так, будто он производится самим коммутатором в ответ на команду «show vlan». Я бы посмотрел, можете ли вы выполнить команду таким образом, чтобы коммутатор не дождался ввода клавиатуры перед возвратом. Если этого не может быть сделано, использование модуля [Expect с Net :: OpenSSH] (http://search.cpan.org/~salva/Net-OpenSSH-0.62/lib/Net/OpenSSH.pm#Expect) может быть полезным. –
Я использовал Expect, но я столкнулся с проблемой :( – ahmed
, когда я использую Expect, у меня есть это сообщение как вывод «не может благословить неосновное значение в/usr/local/share/perl5/expect .pl line 202» any решение – ahmed