Podatke imamo shranjene, pa si poglejmo, kaj vse lahko z njimi počnemo.
| Skripta za risanje se nahaja tule. Snamite jo, jo shranite v mapo "bin" in ji spremenite atribut na executable. Po potrebi spremenite poti v datoteki in obliko grafičnega prikaza. Po zagonu "/home/vp/bin/create_graf.sh" se v temp mapi najdejo slike grafov. Na koncu odkomentiramo zadnjo vrstico v skripti, ki nam grafe skopira na pravilno mesto, na našem web serverju. Potrebno je le še ustvariti html strani in polinkati grafe. Za periodično generiranje grafov dodamo zagon skripte v "ws2300_data_read.sh". Graf izgleda nekako takole: |
![]() |
| Pa si poglejmo, kako zadeva deluje, natančna navodila pa boste našli tule. |
|
#!/bin/shse nahaja na začetku vsake skripte. Operacijskemu sistemu pove, kateri program je odgovoren za izvajanje skripte. V našem primeru je to "shell" oz. ukazna vrstica, ki je na Linux sistemih ponabadi "bash". |
export LANG=sl_SIdoloči jezik, in povzroči da se na grafih izpišejo slovenska imena dnevov itd... |
pic_out="Tout-6h.png"in naslednje vrstice, določijo kam se podatki shranjujejo. Za pravilno delovanje skripte, je potrebno te vrstice prilagoditi na naš sistem. |
| V nadaljevanju je definirana funkcija, kiizriše graf, glede na podane parametre. Kot parameter ji podamo časovno obdobje, za katero želimo izrisati graf. |
rrdtool graph $pic_path"Tout"$data_start".png" --imgformat PNG \Klic programa za risanje grafov. Prvi parameter, je ime in pot do našega grafa, ki se sestavi iz podatkov, ki so prikazani in časovnega obdobja, npr.: "Tout-1w.png" = zunanja temperatura za 1 teden (week). "--imgformat PNG" določi format slike. ".jpg", za te potrebe ni primeren, ker popači sliko, pri formatu ".gif" pa je sporna licenca, zato je ".png" najbolj primeren. |
--end now --start end$data_start --width 600 --height 200 \"--end now" konec (now=sedaj) in "--start end$data_start" začetek (npr.: end-1w = sedaj-1 teden) časovnega obdobja risanja grafa. "--width 600" širina in "--height 200" višina izrisanega grafa v pixlih. Podana je velikost čistega grafa, tako da je končna slika nekoliko večja. |
DEF:Tout=$rrd_data_path$rrd_data:Tout:AVERAGE \Ta vrstica določi iz katere baze bomo črpali podatke. Podatke, lahko črpamo naenkrat iz različnih baz, za vsak podatek dodamo podobno vrstico. Za naš primer: "Tout=" je spremenljivka v katero čitamo podatke "$rrd_data_path$rrd_data" v teh spremenljivkah se nahaja pot do podatkov npr.:"/home/vp/ws2300_data/" + "Tout.rrd" "Tout" ime podatkov v bazi "AVERAGE" način prikaza podatkov (AVERAGE = povprečje). Povprečje se v tem primru računa glede na resolucijo grafa. V kolikor je podano krajše časovno obdobje je povprečje izraženo za posamezne meritve, če pa zajamemo recimo obdobje enega leta, pa je povprečje izraženo za en dan. |
LINE2:Tout#00FF00:"Temp. zunaj" \Ta vrstica določi nam dejansko nariše podatek na graf. Podatki se izrisujejo od vrha proti dni, se pravi podatek, ki ga izrišemo pozneje, prekrije podatek, ki je izrisan prej. "LINE2" tip grafa v prikazu, številka pomeni debelino črte "Tout#00FF00" podatek, ki ga želimo izrisati in barva črte v RGB zapisu "#00FF00 = zelena" "Temp. zunaj" text ki se izpiše v legendo |
GPRINT:Tout:AVERAGE:"Tavg = "%lg" °C"V graf je možno vpisati tudi razne statistične izračune. Toplo priporočam, da malo pogledate v originalno dokumentacijo od RRD. S to vrstico na koncu na graf izpišemo povprečno temperaturo, v izbranem časovnem obdobju. "GPRINT" ukaz za izpis texta na graf "Tout" vir podatkov "AVERAGE" funkcija, ki jo izvedemo nad podatki "AVERAGE = povprečje, MIN = minimum ..." "Tavg = "%lg" °C" text za izpis (%lg = izračunana vrednost) |
|
| Na začetku je napisana funkcija, ki po vrsti kliče posamezne funkcije za risanje grafov |
| V nadaljevanju določimo časovno obdobje in kličemo funkcijo "generiraj grafe" ... |
| ... in na koncu grafe prekopiramo v mapo web strežnika. Za pravilno delovanje, je potrebno prilagoditi poti v tej vrstici in jo odkomentirati. |
|
| V "/home/vp/bin/create_graf.sh" dodamo klic skripte, ki nam generira nove grafe (v našem primeru vsakih 15 minut). |
Upam da vam je uspelo. Prikazal sem le osnovni princip uporabe tega močnega orodja, ki ima skoraj neskončne možnosti. Experimentiranje in branje dokumentacije obvezno.