"OneLiner" för att hämta info från rrd-fil?

RRDTool är en Linuxmjukvara som kan användas för att lagra data i Round-Robin Databaser för att sedan generera grafer utifrån den lagrade datan.
Kategoriregler
Vill du visa bilder i ditt inlägg? Använd funktionen "Ladda upp bilaga" nedanför textrutan!
Användarvisningsbild
motoz
Tar hemautomation på allvar
Inlägg: 100
Blev medlem: 02 feb 2015, 15:05
Ort: ostrobothnia

Re: "OneLiner" för att hämta info från rrd-fil?

Inlägg av motoz »

Hmm, du har ju redan strängen "Avg 34.34", sen plockar du ut "34.34" med awk och sen vill du lägga till "Avg" igen med printf... Varför inte bara skicka raden direkt till /mnt/1wire/... utan awk och printf?

Annars kan du göra så här:

Kod: Markera allt

... | grep "Avg" | awk '{ printf "Average: %s", $2 }' >  /mnt/1wire/FF.C10400000100/line20.1
för att hämta ut 34.34 och plocka in det i stället för %s i strängen "Average: %s" och skicka resultatet till /mnt/1wire...
Open source pellet logger: https://github.com/motoz/PellMon
P-G
Gillar hemautomation
Inlägg: 27
Blev medlem: 14 jun 2009, 11:32
Ort: Vellinge/Eskilstorp

Re: "OneLiner" för att hämta info från rrd-fil?

Inlägg av P-G »

Finns det något annat sätt att få ut värdet till en variabel?
Temp
Användarvisningsbild
CirruZZ
Master Moderator
Inlägg: 1621
Blev medlem: 13 feb 2008, 16:46
Ort: Ystad

Re: "OneLiner" för att hämta info från rrd-fil?

Inlägg av CirruZZ »

P-G skrev:Finns det något annat sätt att få ut värdet till en variabel?
testa

Kod: Markera allt

avg=$(rrdtool graph /dev/null --start=end-36000 DEF:a=/home/pi/rrddata/outside_temp.rrd:outsidetemp:AVERAGE VDEF:mintime=a,MINIMUM VDEF:maxtime=a,MAXIMUM PRINT:a:MIN:"Min\: %3.2lf%s" PRINT:mintime:"Mintid\: %H\:%M":strftime PRINT:a:MAX:"Max %3.2lf%s" PRINT:maxtime:"Maxtime\: %H\:%M":strftime PRINT:a:AVERAGE:"Avg %3.2lf%s" | grep "Avg" | awk '{print $2}')
Användarvisningsbild
CirruZZ
Master Moderator
Inlägg: 1621
Blev medlem: 13 feb 2008, 16:46
Ort: Ystad

Re: "OneLiner" för att hämta info från rrd-fil?

Inlägg av CirruZZ »

Kod: Markera allt

variable=$(command)
Skriv svar