Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: BigSandy 26. 11. 2019, 11:14:36
-
Zdravím.
Bych měl prosbu.
Takto se vytvoři PNG graf z databaze.
rrdtool graph $DIR1/graf_hodinovy.png --start -4h \
--watermark " " \
--width 800 \
--height 240 \
COMMENT:"\\t\\t\\t\\tAktuální\\t\\t Minimum \\t\\t Maximum\\t\\t Průměr\\n" \
DEF:venku=$DIR/databaze_teplota.rrd:venku:AVERAGE \
AREA:venku$VENKU_COLOR:"Teplota venku\\t\\t" \
GPRINT:venku:LAST:"%4.1lf C\\t\\t" \
GPRINT:venku:MIN:"%4.1lf C\\t\\t" \
GPRINT:venku:MAX:" %4.1lf C\\t\\t" \
GPRINT:venku:AVERAGE:" %4.1lf C\\n" \
"
Kdybych chtěl skript, který nevytvoři png obrazek, ale uloži mi MAX teplotu do textoveho souboru?
Pujde to?
-
Pokud mate rrdtool 1.4.6 a vyssi tak zkuste:
rrdtool xport --json
-
Jsem zkoušel ale nějak se neaři :-[
#!/bin/bash
rrdtool xport \
--start now-1h --end now \
DEF:venku=/media/FlashDisk/databaze_teplota.rrd:venku:AVERAGE \
XPORT:venku:"MAX"
a vysledek
<xport>
<meta>
<start>1575191100</start>
<end>1575194400</end>
<step>300</step>
<rows>12</rows>
<columns>1</columns>
<legend>
<entry>MAX</entry>
</legend>
</meta>
<data>
<row><v>3.101917866e+00</v></row>
<row><v>3.795609105e+00</v></row>
<row><v>3.402586796e+00</v></row>
<row><v>3.698100163e+00</v></row>
<row><v>4.097389495e+00</v></row>
<row><v>4.100000000e+00</v></row>
<row><v>4.199334389e+00</v></row>
<row><v>4.001403465e+00</v></row>
<row><v>3.702174684e+00</v></row>
<row><v>3.501420472e+00</v></row>
<row><v>3.500000000e+00</v></row>
<row><v>NaN</v></row>
</data>
</xport>
Mam tam start now-1h --end now
Bych chtěl jen jeden udaj a to max teplotu za poslední hodinu.
A jak do toho zadat cestu, aby to ukladal do souboru jsem take nenašel.
-
Tak to by asi chtělo hodinový step a MAX místo average, ne?
-
Bych řek, že rrdtool xport to asi nezvladne :-\
-
Když na hodinovém období použiješ hodinový krok, tak dostaneš jednu hodnotu. Když místo average použiješ max, tak to bude maximální hodnota. Co nezvládne?
-
Bych řek, že rrdtool xport to asi nezvladne :-\
Pokud data do RRD ukladate v petiminutovem intervalu, tak vam je xport vyplivne logicky take v petiminutovych intervalech. Pokud potrebujete hodinovy prumer, tak si ho z tech petiminutovych vypocitejte v libovolnem scriptovacim jazyce....
-
Zdravím.
Bych měl prosbu.
Takto se vytvoři PNG graf z databaze.
rrdtool graph $DIR1/graf_hodinovy.png --start -4h \
--watermark " " \
--width 800 \
--height 240 \
COMMENT:"\\t\\t\\t\\tAktuální\\t\\t Minimum \\t\\t Maximum\\t\\t Průměr\\n" \
DEF:venku=$DIR/databaze_teplota.rrd:venku:AVERAGE \
AREA:venku$VENKU_COLOR:"Teplota venku\\t\\t" \
GPRINT:venku:LAST:"%4.1lf C\\t\\t" \
GPRINT:venku:MIN:"%4.1lf C\\t\\t" \
GPRINT:venku:MAX:" %4.1lf C\\t\\t" \
GPRINT:venku:AVERAGE:" %4.1lf C\\n" \
"
Kdybych chtěl skript, který nevytvoři png obrazek, ale uloži mi MAX teplotu do textoveho souboru?
Pujde to?
jasne,
misto GPRINT pouzijte PRINT a nekreslete zadny obrazek (tedy bez AREA a spol)
v Perlu napriklad takto:
my (@res1) = RRDs::graph(".", "-s","-4h", "DEF:ds0=databaze_teplota.rrd:venku:AVERAGE", "VDEF:cnt0=ds0,AVERAGE", "PRINT:cnt0:%lf" );
my $temp1 = $res1[0][0];
-
v Perlu napriklad takto:
V subjectu otazky pise ze to chtel v bashi