On Sun, 25 Mar 2001 00:22:05 +0100, Niels Bachmann <precious@precious.dk> wrote:
>Jeg roder lidt med opsætning at RRDtool på min RedHat 6.2
>til det skal jeg bruge et script, der kan opdatere databasen.
>først skal jeg have noget data fra fra eth0 vha snmp:
>så skal rrdtool kaldes og resultatet fyldes i databasen.
>mit scripts ser sådan ud.
>
>#!/usr/bin/perl
>
>$in = `snmpget localhost public 2.2.1.10.2`;
>$out = `snmpget localhost public 2.2.1.16.2`;
>
>// resultatet :
>// interfaces.ifTable.ifEntry.ifInOctets.2 = Counter32: 1387329326
>// interfaces.ifTable.ifEntry.ifOutOctets.2 = Counter32: 1911769686
>
>$in =~ s/interfaces.ifTable.ifEntry.ifInOctets.2 = Counter32: /$1/;
>$out =~ s/interfaces.ifTable.ifEntry.ifOutOctets.2 = Counter32: /$2/;
>
>print "rrdtool update eth0.rrd N:$in:$out";
>
>// skriver rrdtool update eth0.rrd N:1387329326:1911769686
>
>problemet er at der findes et linie skift lige efter $in og $out, så reelt
>kommer $out slet ikke med.
>hvordan kan jeg løse det ?
Hvad med at bruge rrdtool's perlmoduler? Ligeledes med dit snmp snask.
Her er lidt udklip der måske kan hjælpe dig vidre:
use Net::SNMP;
BEGIN{push @INC, '/usr/local/rrdtool-1.0.25/lib/perl';};
use RRDs;
Net::SNMP->session
get_request
RRDs::update ($rrdfil, "N:$input:$output");
my $error = RRDs::error();
die "RRDs::update: $error\n" if defined $error;
/Morten