#!/usr/bin/perl -w # MRTG-Skript, ermittelt die belegte Festplatten-Kapazität use Net::SNMP; # Object-IDs der SNMP-Variablen my $uptimeOID = '.1.3.6.1.2.1.1.3.0'; my $nameOID = '.1.3.6.1.2.1.1.5.0'; # hrStorageAllocationUnits my $unitsOID = '.1.3.6.1.2.1.25.2.3.1.4.1'; # hrStorageUsed my $usedOID = '.1.3.6.1.2.1.25.2.3.1.6.1'; # Werte abfragen ($session, $error) = Net::SNMP->session( Hostname => $ARGV[0], Community => $ARGV[1]); die "Session-Fehler: $error" unless ($session); # Uptime und Name $uptime = $session->get_request($uptimeOID)->{$uptimeOID}; $name = $session->get_request($nameOID)->{$nameOID}; # Blockgröße und Anzahl genutzter Blöcke $units = $session->get_request($unitsOID)->{$unitsOID}; $used = $session->get_request($usedOID)->{$usedOID}; # Belegten Platz in MByte umrechnen $usedMB = int (($units * $used) / (1024 * 1024)); # Werte an MRTG übermitteln print "$usedMB\n"; print "0\n"; # zweiter Wert wird nicht angezeigt print "$uptime\n"; print "$name\n";