← Back to team overview

sslug-teknik team mailing list archive

Re: Opsummering af data fra RRD ?

 

"Peter Makholm" <peter@xxxxxxxxxxx> wrote in message 
news:871xdpxsaq.fsf@xxxxxxxxxxxxx...
> "Brian Ipsen" <bipsen@xxxxxxxxxx> writes:

>>> perl kan (dohhhh):
>>>
>>>  perl -lnaF: -e '$sum += $F[1]; END {print $sum}'
>
>> Det ser jo ud til at løse problemet - i første omgang... Jeg har her i 
>> dag
>> fået en underlig værdi ud, og besluttede mig for at grave lidt mere i
>> det.... Ved at undersøge data fra RRD fik nu nu følgende ud:
>>
>> 1103241000: 9.5200000000e-01
>> 1103241300: nan
>> 1103241600: nan
>> 1103241900: 3.3133333333e+00
>
> Er du sikker på at det er det der giver dig problemet? Perl bør
> opfatte tekststrengen 'nan' som havende talværdien 0 og når jeg
> forsøger at sende disse fire linjer gennem perl får jeg samme resultat
> som hvis jeg kune sender første og sidste linje igennem.

Problemet synes at være lokaliseret - jeg kan dog ikke gennemskue, hvad der 
går galt.... Jeg har i mit script følgende:

TR_DATE=`date +%d`
TR_MONTH=`date +%m`
TR_YEAR=`date +%Y`

for i in `seq 129 191`;
do
    BYTESSENT=0
    BYTESRCVD=0
    if [ -d 
/usr/share/ntop/rrd/interfaces/NetFlow-device/hosts/xxx/yyy/zzz/$i ]; then
        mkdir -p /root/rrd-data/$TR_YEAR-$TR_MONTH-$TR_DATE/xxx.yyy.zzz.$i
        if [ -f 
/usr/share/ntop/rrd/interfaces/NetFlow-device/hosts/xxx/yyy/zzz/$i/bytesSent.rrd 
 ]; then
            BYTESSENT=`TIME=$(date +%s); RRDRES=300; rrdtool fetch 
/usr/share/ntop/rrd/interfaces/NetFlow-device/hosts/xxx/yyy/zzz/$i/bytesSent.rrd 
AVERAGE -r $RRDRES -e $(echo $(($TIME/$RRDRES*$RRDRES))) -s n-1d | 
perl -lnaF: -e '$sum += $F[1]; END {printf "%d\n",$sum * 300}'`
#           echo 'Sent: '$BYTESSENT
            cp -f 
/usr/share/ntop/rrd/interfaces/NetFlow-device/hosts/xxx/yyy/zzz/$i/bytesSent.rrd 
/root/rrd-data/$TR_YEAR-$TR_MONTH-$TR_DATE/xxx.yyy.zzz.$i/bytesSent.rrd
        fi
    fi
done

Af en eller anden grund går noget galt ved den if statement, som skal checke 
om rrd-filen eksisterer - for jeg får fejl på min copy kommando (filen 
eksisterer nemlig ikke):

cp: cannot stat 
`/usr/share/ntop/rrd/interfaces/NetFlow-device/hosts/xxx/yyy/zzz/173/bytesSent.rrd': 
No such file or directory

Hvad gør jeg galt, der hvor jeg checker, om filen eksisterer ?

/Brian




Follow ups

References