#!/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";