Хорошо, я новичок в Perl-скрипте, пытаюсь создать код и искал здесь сообщения, связанные с telnet, ведением журнала и отправкой команд ... Я пробовал то же самое, но не получилось
Вот файл json
{
"testbed": {
"rps": {
"RPS1": {
"management": "192.168.40.2",
"pool": "2,4,5"
},
"RPS2": {
"management": "192.168.40.20",
"pool": "2,5"
}
},
}
И мой Perl-скрипт такой
#!/usr/bin/perl -w
use warnings;
use strict;
use JSON;
use Talari::Automation::CLI;
use Data::Dumper;
use Net::Telnet();
use Expect;
#read json and print value of json
my $json;
{
local $/; #Enable 'slurp' mode
open my $fh, "<", "Persistent_path.json";
$json = <$fh>;
close $fh;
}
my $data = decode_json($json);
############RPS
use vars qw/ $rps $rpses $ip /;
#rps info from decoded $data alone stored in $rps of perl
my $rps = $data->{'testbed'}->{'rps'};
print Dumper($rps);
# loop to extract only mgt ip addresses of switches
foreach my $rpsinfo(keys %{$rps})
{
my $rpses=$rps->{$rpsinfo};
my $rpsip = $rpses->{'management'};
my @rpspool = $rpses->{'pool'};
my $telnet = Net::Telnet->new( Timeout=>5, Errmode=>'die', );
$telnet->open("$rpsip");
$telnet->waitfor('/\> $/');
$telnet->cmd('pshow');
}
и выводом является тайм-аут сопоставления с образцом в строке ./rps.pl 38
и при входе в telnet вручную, приглашение показывает только>
Я просто хотел как можно проще войти в telnet, поэтому я искал и увидел модуль Telnet, но он не выдает вывод.
Я также попробовал этот код
system("telnet","$rpsip");
Это работает, но я не могу отправить какие-либо команды, такие как "pshow", используя команду печати ..
Кто-нибудь поможет мне с этим? Я просто хочу сделать это проще, а также я должен изменить код так, чтобы в случае сбоя соединения я хотел попробовать еще 2 раза войти в систему, а затем выполнить мои команды для включения портов.
Заранее спасибо. Кроме того, есть ли место, где я могу изучить Perl-скрипт, в основном связанный с сетью?