Привет всем, имеется скрипт для обращения к сетевому оборудованию по snmp:
#!/usr/local/bin/perl
use warnings;
use Net::SNMP;
my $OID = '1.3.6.1.2.1.1.1.0';
while (<>){
chomp($_);
($session, $error) = eval{Net::SNMP->session(
-hostname => shift || $_,
-community => shift || 'private',)};
if (!defined $session) {
printf "ERROR: 1%s.\n", $error;
}
my $result = $session->get_request(-varbindlist => [ $OID ],);
if (!defined $result) {
printf "ERROR: %s.\n", $session->error();
$session->close();
exit 1;
}
printf "'%s' is %s.\n",
$session->hostname(), $result->{$OID};
$session->close();
}
exit 0;
Если ему передать ip свитча, то он по snmp узнает модель свитча.
Но вот если до свитча не достучаться, или его просто не существует, скрипт вываливается с ошибкой:
«ERROR: No response from remote host „172.16.16.3“ ,
что сделать, чтобы скрипт не прекращал свою работу если свитч не доступен?
Пробовал поместить фрагменты в eval{}, не выходит ничего дельного, посоветуйте решение.