Sida 11 av 16

Re: HOWTO: RRDtool på Ubuntu (installera, logga, rita graf)

Postat: 09 jun 2011, 12:58
av Quart
jed skrev:Nästan rätt, byt ut nano mot vi så börjar vi närma oss ;)

Quart: om du bara editerar filen så kommer dina ändringar inte att köras. Du MÅSTE editera filen med kommandot crontab -e

Om du inte får upp nano med export EDITOR... som plutonium skrev så lägg till:
export VISUAL=/usr/bin/nano
innan export EDITOR=...

dvs:

Kod: Markera allt

export VISUAL=/usr/bin/nano 
export EDITOR=/usr/bin/nano
sudo crontab -e

För att lista det du har i crontab för root så kan du köra sudo crontab -l
Tackar, nu fick jag upp ett val och valde då nano och kunde då edita crontab.

Jag har fått igång det med grafer och allt !!!!
Kör på en gammal homebrew adpater så det blev lite mer pyssel men med hjälp av detta forum löste jag det.
Tack för denna underbara tråden, en Linux newbie lyckades !

Re: HOWTO: RRDtool på Ubuntu (installera, logga, rita graf)

Postat: 09 jun 2011, 19:34
av CirruZZ
Quart skrev:
Jag har fått igång det med grafer och allt !!!!
Kör på en gammal homebrew adpater så det blev lite mer pyssel men med hjälp av detta forum löste jag det.
Tack för denna underbara tråden, en Linux newbie lyckades !
:D Härligt när det funkar!

Re: HOWTO: RRDtool på Ubuntu (installera, logga, rita graf)

Postat: 09 jun 2011, 21:01
av Quart
Kanske jublade lite för tidigt. :oops:
Får inte till cron jobben.
Kör jag sudo get_temp.sh och sedan graph_temp.sh så funkar det.
Men när jag lagt nedanstpende i crontab så vill den inte köra det enligt schemat.
*/2.5 * * * * /home/quart/bin/get_temp.sh
*/2.5 * * * * export LANG=sv_SE.utf8 && /home/quart/bin/graph_temp.pl

Måste vara något med rättigheterna på mina filer, men jag har kört sudo chmod +x get_temp.sh enligt guiden.

Re: HOWTO: RRDtool på Ubuntu (installera, logga, rita graf)

Postat: 10 jun 2011, 08:01
av larky
Inget med sökvägarna inne i sjäva scriptet?

Re: HOWTO: RRDtool på Ubuntu (installera, logga, rita graf)

Postat: 10 jun 2011, 09:33
av jed
Quart skrev:Kanske jublade lite för tidigt. :oops:
Får inte till cron jobben.
Kör jag sudo get_temp.sh och sedan graph_temp.sh så funkar det.
Men när jag lagt nedanstpende i crontab så vill den inte köra det enligt schemat.
*/2.5 * * * * /home/quart/bin/get_temp.sh
*/2.5 * * * * export LANG=sv_SE.utf8 && /home/quart/bin/graph_temp.pl

Måste vara något med rättigheterna på mina filer, men jag har kört sudo chmod +x get_temp.sh enligt guiden.
Har du kört sudo crontab -e eller bara crontab -e?
Om du har kört skripten med sudo och sen kör crontab -r UTAN sudo så kommer den antagligen inte att fungera eftersom filerna den vill skriva ägs av root.

Prova att lägga till:
MAILTO=[din mailadress]
i början av filen, då kommer den att maila output till dig så du kan felsöka lite enklare.

Prova att byta ut */2.5 mot * också, då kommer skripten att köras varje minut istället. Det är inte alla versioner av cron som klarar */2.5...
Fungerar inte det så skicka med dina skript så kan jag kolla på dom.

Re: HOWTO: RRDtool på Ubuntu (installera, logga, rita graf)

Postat: 10 jun 2011, 09:42
av Quart
citat:"Har du kört sudo crontab -e eller bara crontab -e?
Om du har kört skripten med sudo och sen kör crontab -r UTAN sudo så kommer den antagligen inte att fungera eftersom filerna den vill skriva ägs av root"

Det var nog problemet nu verkar den logga och skapa grafen som den skall
Tack !!

Re: HOWTO: RRDtool på Ubuntu (installera, logga, rita graf)

Postat: 10 jun 2011, 11:32
av jed
Kul att det funkar igen :)

Hur lagra historisk data?

Postat: 15 jun 2011, 17:35
av hellgun
Hej och tack för en bra guide!

En fråga dock...

Jag har historisk data sedan 7 månader tillbaka med 1 minuts upplösning och det är lagrat i textfiler. Finns det något smidigt sätt att läsa in dessa värden i RRDtool-databasen så att jag även får med det i mina grafer?

Formatet i textfilerna ser ut såhär:

Kod: Markera allt

2011-06-15 17:30	21,25
/Anders

Re: Hur lagra historisk data?

Postat: 15 jun 2011, 20:13
av jed
hellgun skrev: Jag har historisk data sedan 7 månader tillbaka med 1 minuts upplösning och det är lagrat i textfiler. Finns det något smidigt sätt att läsa in dessa värden i RRDtool-databasen så att jag även får med det i mina grafer?
Gå igenom filen och stoppa in alla värden mha rrdtool update [TIMESTAMP] istället för N: som står för NOW
Jag hackade ihop ett skript som kan göra det åt dig, jag utgår från att dina värden ligger i en fil som heter temps som ligger i /home/jed och att dina rrd-filer ligger enligt howto:n
Ligger dom någon annanstans så uppdatera $orgFile och $RRDFile i skriptet.

Det skriver ut lite data allteftersom det tuggar igenom filen och jag har kommenterat lite grann vad dom olika raderna gör.

Jag har inte testat det själv eftersom jag inte har rrdtool på den här datorn men det bör funka ;)
Som vanligt, ta backup på din rrd-fil INNAN du kör det här

Kör det från kommandoprompten genom att skriva:
php ./skript.php (skript.php ska bytas ut mot det du döpte skriptet till)

Kod: Markera allt

<?php

// input file
$orgFile = "/home/jed/temps";
// RRDfile
$RRDFile="/home/anders/rrddata/outside_temp.rrd";


$ptr = fopen ($orgFile, "r");

if ($ptr) 
{
        while (($tmp = fgets($ptr, 4096)) !== false)
        {
                echo "Processing row...";
                // Split the row 
                $fields = preg_split ("/\ /", rtrim ($tmp), 10, PREG_SPLIT_NO_EMPTY);

                // Replace , with . to make rrdtool update happy
                $temp = preg_replace ("/,/", ".", $fields[2]);

                // rrdupdate wants a unixtimestamp (ie # of seconds since 1/1-1970)
                $timestamp = mktime (substr ($fields[1], 0, 2), 
                                     substr ($fields[1], 3, 2), 
                                     0,
                                     substr ($fields[0], 5, 2),
                                     substr ($fields[0], 8, 2),
                                     substr ($fields[0], 0, 4));
                // Enough magic, lets update rrd
                exec ('rrdtool update $RRDFile $timestamp:$temp');

                echo "$fields[2] degrees, timestamp $fields[0] $fields[1] added to rrd\n";

        }
} else {
        echo "ERROR: Unable to open $orgFile\n";
}

fclose ($ptr);

echo "\nAll done!\n\n";
?>

Re: Hur lagra historisk data?

Postat: 16 jun 2011, 09:54
av hellgun
Ah, shit va snällt att du tog dig tid att mecka ihop ett skript!

Ska testa detta ikväll.

/Anders

Re: Hur lagra historisk data?

Postat: 16 jun 2011, 11:08
av jed
hellgun skrev:Ah, shit va snällt att du tog dig tid att mecka ihop ett skript!

Ska testa detta ikväll.

/Anders
Lugnt, satt och lyssnade på barnen som pratade lite förnöjt medans dom somnade :)
Hojta till om det strular så kan jag hjälpa dig!

Re: HOWTO: RRDtool på Ubuntu (installera, logga, rita graf)

Postat: 10 dec 2012, 22:41
av look2
En liten fundering, detta har väl egentligen ingenting med how-ton att göra, men det tas ju upp rrdtool frågor här så...

Om jag vill göra grafer för tex 24 timmar, 1 vecka, 1 månad, 1år då måste jag ha 4 script, som genererar fyra grafer?
Om jag då skulle ha 10st sensorer, så kan ju kanske det blir "grötigt" att se i en graf, så om jag vill göra en graf för bara en sensor så blir det ytterligare ett script? och om jag då vill ha samma historik på den så blir det 4 script?

Så till mina 10 sensorer kommer jag att behöva 40 script?

Re: HOWTO: RRDtool på Ubuntu (installera, logga, rita graf)

Postat: 11 dec 2012, 07:07
av PatrikN78
Nja, ett räcker men man får tänka till lite och kanske skicka med några parametrar till scriptet beroende på vad du vill ha ut, typ:
DrawImg(1w, sensor_inne.rrd, innetemp)

Re: HOWTO: RRDtool på Ubuntu (installera, logga, rita graf)

Postat: 11 dec 2012, 12:39
av look2
Hmmm, har du någon länk till där just dessa grejer förklaras?
Man kanske skall läsa på det lite innan jag sitter och börjar göra alltför många script...

Re: HOWTO: RRDtool på Ubuntu (installera, logga, rita graf)

Postat: 11 dec 2012, 13:17
av look2
JAg har modifierat scriptet lite för att hämta data från flera sensorer. Men nu när jag lade till en 3:e sensor så har jag lyckats fårr något tecken fel. Skulle vara trevligt om någon kunde hjälpa mig att felsöka lite.

Scriptet:

Kod: Markera allt

#!/bin/bash

#global
RRDDataDirectory="/home/look2/rrddata/"
#sensors
KontorTempSensor="28.71AF6E040000"
OutsideTempSensor="28.EADD6E040000"
GastrumTempSensor="28.39C36E040000"
#datafiles
RRDDataFile1="kontor.rrd"
RRDDataFile2="outside_temp.rrd"
RRDDatafile3="gastrum.rrd"
# Get temps form OWFS
KontorTemp=`cat /mnt/1wire/$KontorTempSensor/temperature|sed -e s/" "//g|awk '{$1=$1 + 0.005;printf "%.2f", $1}'`
OutsideTemp=`cat /mnt/1wire/$OutsideTempSensor/temperature|sed -e s/" "//g|awk '{$1=$1 + 0.005;printf "%.2f", $1}'`
GastrumTemp=`cat /mnt/1wire/$GastrumTempSensor/temperature|sed -e s/" "//g|awk '{$1=$1 + 0.005;printf "%.2f",
$1}'`
#Update RRD database
rrdtool update $RRDDataDirectory$RRDDataFile1 N:$KontorTemp
rrdtool update $RRDDataDirectory$RRDDataFile2 N:$OutsideTemp
rrdtool update $RRDDataDirectory$RRDDataFile3 N:$GastrumTemp

echo Kontoret: $KontorTemp
echo Ute: $OutsideTemp
echo Gästrum: $GastrumTemp
output:

Kod: Markera allt

look2@fserv:~/bin$ sudo ./get_temp.sh
ERROR: opening '/home/look2/rrddata/': Är en katalog
Kontoret: 21.57
Ute: -2.68
Gästrum: 20.63