RRDtool bash

RRDtool bash
« kdy: 26. 11. 2019, 11:14:36 »
Zdravím.
Bych měl prosbu.
Takto se vytvoři PNG graf z databaze.
Kód: [Vybrat]
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?

« Poslední změna: 26. 11. 2019, 11:17:04 od BigSandy »


Re:RRDtool bash
« Odpověď #1 kdy: 26. 11. 2019, 11:57:02 »
Pokud mate rrdtool 1.4.6 a vyssi tak zkuste:

Kód: [Vybrat]
rrdtool xport --json

Re:RRDtool bash
« Odpověď #2 kdy: 01. 12. 2019, 11:08:53 »
Jsem zkoušel ale nějak se neaři   :-[

Kód: [Vybrat]
#!/bin/bash

rrdtool xport \
--start now-1h --end now \
    DEF:venku=/media/FlashDisk/databaze_teplota.rrd:venku:AVERAGE \
    XPORT:venku:"MAX"

a vysledek
Kód: [Vybrat]
<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.

tecka

  • ***
  • 138
    • Zobrazit profil
    • E-mail
Re:RRDtool bash
« Odpověď #3 kdy: 01. 12. 2019, 12:49:04 »
Tak to by asi chtělo hodinový step a MAX místo average, ne?

Re:RRDtool bash
« Odpověď #4 kdy: 01. 12. 2019, 23:47:06 »
Bych řek, že rrdtool xport to asi nezvladne  :-\


tecka

  • ***
  • 138
    • Zobrazit profil
    • E-mail
Re:RRDtool bash
« Odpověď #5 kdy: 02. 12. 2019, 09:19:23 »
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?

Re:RRDtool bash
« Odpověď #6 kdy: 02. 12. 2019, 20:11:53 »
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....

Re:RRDtool bash
« Odpověď #7 kdy: 03. 12. 2019, 08:14:49 »
Zdravím.
Bych měl prosbu.
Takto se vytvoři PNG graf z databaze.
Kód: [Vybrat]
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:
Kód: [Vybrat]
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];


Re:RRDtool bash
« Odpověď #8 kdy: 03. 12. 2019, 10:41:04 »
v Perlu napriklad takto:

V subjectu otazky pise ze to chtel v bashi