Flera "linjer" i samma graf
Postat: 11 okt 2013, 18:58
Hej alla behöver lite support, är rätt ny på allt vad linux heter men har stor datorvana har varit med sedan C64-tiden
vill plocka in flera temperaturer i samma RRD-bas. har pysslat lite i ett par dagar läst lite trådar och på RRDs hemsida men blir inte klokare.
Men så här har jag gjort:
#!/bin/bash
# script för att skapa en RRD-fil
# 24 timmar med 2.5 miuter upplösning
# 1 vecka med 5 minutrs upplösning
# 1 år med 10 minuters upplösning
# 20 år med 1 timmes upplösning
directory="/home/nordviken/rrddata/"
filename="rum.rrd"
# kolla om filen finns
if [ ! -f "$directory$filename" ]
then
# Om filen inte finns, skapa en ny rrd-fil
echo "Creating RRDTool DB for room temperatrure sensors"
rrdtool create $directory$filename \
--step 150 \
DS:pipe:GAUGE:300:-50:60 \
DS:loose:GAUGE:300:-50:60 \
RRA:AVERAGE:0.5:1:5760 \
RRA:AVERAGE:0.5:2:2016 \
RRA:AVERAGE:0.5:4:52560 \
RRA:AVERAGE:0.5:24:175200 \
RRA:MAX:0.5:1:5760 \
RRA:MAX:0.5:2:2016 \
RRA:MAX:0.5:4:52560 \
RRA:MAX:0.5:24:175200 \
RRA:MIN:0.5:1:5760 \
RRA:MIN:0.5:2:2016 \
RRA:MIN:0.5:4:52560 \
RRA:MIN:0.5:24:175200
echo "done!"
else
echo $directory$filename" already existes!"
fi
---------
#!/bin/bash
pipe_sensor="10.e31dfa010800"
loose_sensor="10.64472b020800"
RRDDataDirectory="/home/nordviken/rrddata/"
RRDDatafile="rum.rrd"
# Hämta temperaturer från OWFS
pipe=`cat /mnt/1wire/$pipe_sensor/temperature | sed -e s/" "//g | awk '{$1=$1 + 0.005;printf"%.1f",$1}'`
loose=`cat /mnt/1wire/$loose_sensor/temperature | sed -e s/" "//g | awk '{$1=$1 + 0.005;printf"%.1f",$1}'`
# uppdatera RRD database
rrdtool update $RRDDataDirectory$RRDDatafile N:$pipe:$loose
echo [$pipe:$loose]
----------
#!/usr/bin/perl
use RRDs;
my $cur_time = time() ;
my $start_time = $cur_time - 84600 ;
RRDs::graph"/var/www/temp.png",
"--start= $start_time",
"--end= $cur_time",
"--title= vardagsrum och element",
"--height= 300",
"--width= 500",
"--vertical-label= C",
"DEF:rum=/home/nordviken/rrddata/rum.rrd:loose:AVERAGE",
"DEF:pipe=/home/nordviken/rrddata/rum.rrd:pipe:AVERAGE",
"COMMENT:\t\t\t\tNu Medel Max Min\\n",
"HRULE:20.5#0000ff",
"LINE2:pipe#ff0000:Elemet",
"LINE2:rum#00ff00:rum\t\t\t",
"GPRINT:rum:LAST:%6.1lf",
"GPRINT:rum:AVERAGE:%6.1lf",
"GPRINT:rum:MAX:%6.1lf",
"GPRINT:rum:MIN:%.1lf\\n";
my $err=RRDs::error;
if ($err) {print "problem med att skapa grafen: $err\n";}
print "done!\n"
Någonstans skiter det sig då ajg bara får "nul"-värden i basen
tacksam för hjälp
\erik
vill plocka in flera temperaturer i samma RRD-bas. har pysslat lite i ett par dagar läst lite trådar och på RRDs hemsida men blir inte klokare.
Men så här har jag gjort:
#!/bin/bash
# script för att skapa en RRD-fil
# 24 timmar med 2.5 miuter upplösning
# 1 vecka med 5 minutrs upplösning
# 1 år med 10 minuters upplösning
# 20 år med 1 timmes upplösning
directory="/home/nordviken/rrddata/"
filename="rum.rrd"
# kolla om filen finns
if [ ! -f "$directory$filename" ]
then
# Om filen inte finns, skapa en ny rrd-fil
echo "Creating RRDTool DB for room temperatrure sensors"
rrdtool create $directory$filename \
--step 150 \
DS:pipe:GAUGE:300:-50:60 \
DS:loose:GAUGE:300:-50:60 \
RRA:AVERAGE:0.5:1:5760 \
RRA:AVERAGE:0.5:2:2016 \
RRA:AVERAGE:0.5:4:52560 \
RRA:AVERAGE:0.5:24:175200 \
RRA:MAX:0.5:1:5760 \
RRA:MAX:0.5:2:2016 \
RRA:MAX:0.5:4:52560 \
RRA:MAX:0.5:24:175200 \
RRA:MIN:0.5:1:5760 \
RRA:MIN:0.5:2:2016 \
RRA:MIN:0.5:4:52560 \
RRA:MIN:0.5:24:175200
echo "done!"
else
echo $directory$filename" already existes!"
fi
---------
#!/bin/bash
pipe_sensor="10.e31dfa010800"
loose_sensor="10.64472b020800"
RRDDataDirectory="/home/nordviken/rrddata/"
RRDDatafile="rum.rrd"
# Hämta temperaturer från OWFS
pipe=`cat /mnt/1wire/$pipe_sensor/temperature | sed -e s/" "//g | awk '{$1=$1 + 0.005;printf"%.1f",$1}'`
loose=`cat /mnt/1wire/$loose_sensor/temperature | sed -e s/" "//g | awk '{$1=$1 + 0.005;printf"%.1f",$1}'`
# uppdatera RRD database
rrdtool update $RRDDataDirectory$RRDDatafile N:$pipe:$loose
echo [$pipe:$loose]
----------
#!/usr/bin/perl
use RRDs;
my $cur_time = time() ;
my $start_time = $cur_time - 84600 ;
RRDs::graph"/var/www/temp.png",
"--start= $start_time",
"--end= $cur_time",
"--title= vardagsrum och element",
"--height= 300",
"--width= 500",
"--vertical-label= C",
"DEF:rum=/home/nordviken/rrddata/rum.rrd:loose:AVERAGE",
"DEF:pipe=/home/nordviken/rrddata/rum.rrd:pipe:AVERAGE",
"COMMENT:\t\t\t\tNu Medel Max Min\\n",
"HRULE:20.5#0000ff",
"LINE2:pipe#ff0000:Elemet",
"LINE2:rum#00ff00:rum\t\t\t",
"GPRINT:rum:LAST:%6.1lf",
"GPRINT:rum:AVERAGE:%6.1lf",
"GPRINT:rum:MAX:%6.1lf",
"GPRINT:rum:MIN:%.1lf\\n";
my $err=RRDs::error;
if ($err) {print "problem med att skapa grafen: $err\n";}
print "done!\n"
Någonstans skiter det sig då ajg bara får "nul"-värden i basen
tacksam för hjälp
\erik