Я написал Perl-скрипт, который запускает сеанс SNMP и извлекает данные / счетчики и их значение в CSV-файл.Есть 7 Perl-скриптов;другие свойства / определения / переменные сверху .. но движок тот же.
На данный момент эти 7 сценариев perl являются избыточными, за исключением определенных переменных.Есть ли способ сохранить Perl-скрипт выполнения в виде файла свойств / выполнения и сохранить движок в другом файле?Этот Perl-скрипт для свойств / выполнения будет вызывать механизм (используя свойства, определенные в его собственном скрипте).
Короче говоря, я хочу использовать переменные в их собственном скрипте (также и в качестве исполнения), новызывает определенную функцию из единого «движка».
, т.е.
retrieve_mibs1.pl retrieve_mibs2.pl retrieve_mibs3.pl retrieve_mibs4.pl retrieve_mibs5.pl retrieve_mibs6.pl retrieve_mibs7.pl
* retrieve_mibs1.pl
#!/usr/local/bin/perl
use Net::SNMP;
##DEFINITION START
my @Servers = (
'server1',
'server2',
);
my $PORT = 161;
my $COMMUNITY = 'secret';
my $BASEOID = '1.2.3.4.5.6.7.8';
my $COUNTERS = [
[11,'TotalIncomingFromPPH'],
[12,'TotalFailedIncomingFromPPH'],
];
##ENGINE START
sub main {
my $stamp = gmtime();
my @oids = ();
foreach my $counter (@$COUNTERS) {
push @oids,("$BASEOID.$$counter[0].0");
}
foreach my $server (@Servers) {
print "$stamp$SEPARATOR$server";
my ($session,$error) = Net::SNMP->session(-version => 1,-hostname => $server,-port => $PORT,-community => $COMMUNITY);
if ($session) {
my $result = $session->get_request(-varbindlist => \@oids);
if (defined $result) {
foreach my $oid (@oids) {
print $SEPARATOR,$result->{$oid};
}
} else {
print STDERR "$stamp Request error: ",$session->error,"\n";
print "$SEPARATOR-1" x scalar(@oids);
}
} else {
print STDERR "$stamp Session error: $error\n";
print "$SEPARATOR-1" x scalar(@oids);
}
print "\n";
}
}
main();