#! /usr/bin/perl # Per SNMP Identnummer von einem Primergy-Server holen # Der Rechnername bzw. die IP-Adresse kann über STDIN oder # über eine Eingabedatei übergeben werden. ################################################################# use strict; use vars qw($session $error $response); use Getopt::Long; use Net::SNMP; my $host = 'localhost'; my $community = 'public'; my $timeout = 4; my $identifier = '.1.3.6.1.2.1.1.5.0'; # System Name # my $identifier = '.1.3.6.1.2.1.1.1.0'; # System Beschreibung # my $identifier = '.1.3.6.1.2.1.1.3.0'; # System Uptime # my $identifier = '.1.3.6.1.2.1.1.4.0'; # System Kontaktadresse # my $identifier = '.1.3.6.1.2.1.1.6.0'; # System Location # my $identifier = '.1.3.6.1.2.1.25.2.2.0'; # RAM-Größe # my $identifier = '.1.3.6.1.4.1.231.2.10.2.2.5.10.3.1.3.0'; # Identnummer # my $identifier = '.1.3.6.1.4.1.231.2.10.2.5.2.6.0'; # CPU Usage my $help = ""; my $USAGE = < \$identifier, "community=s" => \$community, "timeout=s" => \$timeout, "help" => \$help); if ($help) { die "$USAGE"; } while (<>) { chop; $host = $_; ($session, $error) = Net::SNMP->session( -hostname => "$host", -community => "$community", -timeout => "$timeout", -port => 161 ); if (!defined($session)) { printf("ERROR: %s.\n", $error); next; } if (!defined($response = $session->get_request($identifier))) { printf("ERROR: %s.\n", $session->error()); $session->close(); next; } printf("%s %s\n", $session->hostname(), $response->{$identifier} ); $session->close(); }