#!/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あたりでは小数点対応してないんじゃないの?
ってことで多少変更したりムニャムニャ(´ー`)