#!/usr/bin/perl
#host.hrSystem.hrSystemUptime.0 .1.3.6.1.2.1.25.1.1.0 = Timeticks: (3168344309) 366 days, 16:57:23.09
#enterprises.ucdavis.memory.memTotalSwap.0 = 2096472
#enterprises.ucdavis.memory.memAvailSwap.0 = 2023480
#enterprises.ucdavis.memory.memTotalReal.0 = 1030676
#enterprises.ucdavis.memory.memAvailReal.0 = 96220
#enterprises.ucdavis.memory.memBuffer.0 = 27720
#enterprises.ucdavis.memory.memCached.0 = 232212
my ($addr, $commname) = @ARGV;
my $mibhrSystemUptime = '.1.3.6.1.2.1.25.1.1.0';
my $mibmemTotalSwap = '.1.3.6.1.4.1.2021.4.3.0';
my $mibmemAvailSwap = '.1.3.6.1.4.1.2021.4.4.0';
my $mibmemTotalReal = '.1.3.6.1.4.1.2021.4.5.0';
my $mibmemAvailReal = '.1.3.6.1.4.1.2021.4.6.0';
my $mibmemBuffer = '.1.3.6.1.4.1.2021.4.14.0';
my $mibmemCached = '.1.3.6.1.4.1.2021.4.15.0';
my $snmpGet = 'snmpget';
my $memAvail = `$snmpGet -Oqs -v 1 "$addr" "$commname" $mibhrSystemUptime $mibmemTotalSwap $mibmemAvailSwap $mibmemTotalReal $mibmemAvailReal $mibmemBuffer $mibmemCached`;
my @vals = split(/\n/, $memAvail);
my $val;
foreach $pair (@vals) {
my ($k, $v) = split(/ /, $pair);
$val{$k} = $v;
}
print 100*($val{'memTotalReal.0'}-$val{'memAvailReal.0'}-$val{'memBuffer.0'}-$val{'memCached.0'})/$val{'memTotalReal.0'}."\n";
print 100*($val{'memTotalSwap.0'}-$val{'memAvailSwap.0'})/$val{'memTotalSwap.0'}."\n";
my @upt = split(/:/, $val{'hrSystemUptime.0'});
print "${upt[0]} days ${upt[1]}:${upt[2]}\n";
print "$addr\n";
Posted by minemaz at 2005年05月28日 13:13
mrtg-2.9.6 つか rhasの2.1あたりでは小数点対応してないんじゃないの?
ってことで多少変更したりムニャムニャ(´ー`)