Prosil mnie ktos o skrypt jak ja to am zrobione a wiec:
tworzymy katalogi:
/etc/rrdtool
/etc/rrdtool/bazy
/etc/rrdtool/skrypty
/etc/rrdtool/rrd
w katalogu /etc/rrdtool/bazy tworzymy plik "temperatura" z zawartoscia:
rrdtool create /etc/rrdtool/rrd/temperatura.rrd \
--step 30 \
DS:1:GAUGE:600:0:U \
DS:2:GAUGE:600:0:U \
DS:3:GAUGE:600:0:U \
DS:4:GAUGE:600:0:U \
DS:5:GAUGE:600:0:U \
DS:6:GAUGE:600:0:U \
DS:7:GAUGE:600:0:U \
RRA:AVERAGE:0.5:2:1400 \
RRA:AVERAGE:0.5:10:1008 \
RRA:AVERAGE:0.5:6:744 \
RRA:AVERAGE:0.5:12:744 \
RRA:AVERAGE:0.5:180:372 \
RRA:AVERAGE:0.5:360:744
nadajemy prawa wykonywalnosci:
chmod +x /etc/rrdtool/bazy/temperatura
w katalogu /etc/rrdtool/skrypty tworzymy plik "temperatura"
NAZWA_BAZY=/etc/rrdtool/rrd/temperatura.rrd
cd /home/temperatura
a=`./skrypt`
wynik1=`echo $a | cut -d ";" -f 1`
wynik2=`echo $a | cut -d ";" -f 2`
wynik3=`echo $a | cut -d ";" -f 3`
wynik4=`echo $a | cut -d ";" -f 4`
wynik5=`echo $a | cut -d ";" -f 5`
wynik6=`echo $a | cut -d ";" -f 6`
wynik7=`echo $a | cut -d ";" -f 7`
rrdtool update $NAZWA_BAZY \
--template \
1:2:3:4:5:6:7 \
N:$wynik1:$wynik2:$wynik3:$wynik4:$wynik5:$wynik6:$wynik7 \
nadajemy prawa wykonywalnosci:
chmod +x /etc/rrdtool/skrypty/temperatura
Tworzymy katalog /home/temperatura wrzucamy do niego wszytskie pliki z digitempa wyglada to tak:
[root@serwer temperatura]# pwd
/home/temperatura
[root@serwer temperatura]# ls
COPYING ChangeLog TODO digitemp_2490.spec maksymalna python skrypt2 userial
COPYRIGHT FAQ contrib digitemp_9097.spec minimalna rrdb src wynik
CREDITS Makefile digitemp-freebsd.patch digitemp_9097u.spec perl rrdtool-1.0.49 start
CVS README digitemp.1 digitemp_DS9097 plik.txt skrypt temperatura
tworzymy sobie tam nowy plik "skrypt" a w nim
#!/usr/bin/perl
$cz=@ARGV[0];
$t1=10*`/home/temperatura/digitemp_DS9097 -s /dev/ttyS0 -t 0 -q -o %.2C`;
#$t1=0;
$t1 /= 10;
$t2=$t1;
#dodatnia temperatura dzielona na 4 kolory
if($t1>0){
#od 0 do 10
if($t1<=10){
print"0;0;0;$t1;0;0;0";
}
else {
#od 2 do 4
if($t1<=4){
$t1 -= 2;
print"0;0;0;2;$t1;0;0";
}
else {
#od 20 do 30
if($t1<=30){
$t1 -= 20;
print"0;0;0;10;10;$t1;0";
}
else {
#od 30 do nieskonczonosci
if($t1>30){
$t1 -= 30;
print"0;0;0;10;10;10;$t1";
}
}
}
}
}
else {
#od 0 do -2
if($t1>=-2){ print"0;0;".(-$t1).";0;0;0;0"; }
else {
#od -2 do -5
if($t1>=-5){
$t1 += 2;
print"0;".(-$t1).";2;0;0;0;0";
}
else {
#od -5 do n
if($t1<-5){
$t1 += 5;
print"".(-$t1).";3;2;0;0;0;0";
}
}
}
}
print"\n";
nadajemy prawa wykonywalnosci
chmod +x /home/temperatura/skrypt
Odpalamy tworzenie bazy:
./etc/rrdtool/bazy/temperatura
Nie powinno sie nic pokazac.
Odpalmy skrypt zeby sprawdzic czy nie ma bledow.
./etc/rrdtool/skrypty/temperatura
Musimy jeszcze odpalac skrypt co jakis czas zeby dodawal wpisy do bazy mozna zroibc do z crona co minute:
*/1 * * * * /etc/rrdtool/skrypty/temperatura
/etc/rc.d/crond restart
Jezeli wszytsko poszlo bezblednie przechodzimy do tworzenia wykresow w cgi

Do cgi wymagany jest apach badz thttpd
Przy apachu nalezy sprawdzic gdzie trzyma cgi i tam umiescic plik ktory zaraz zrobimy, jezeli chodzi o thttpd nalezy w nim wlaczyc obsluge cgi standardowo w NND jest odpalany bez cgi (szukac na forum bylo milion razy)
Posprawdzajcie sobie sciezki do plikow bo jak widac ja mam cale www w /var/www, cgi mam w /var/www/cgi-bin dlatego obrazki generowane trzymam w "rrdtool graph /var/www/rrdtool/temperatura.png" laczy sie t oscisle z "ALT="uptime" SRC="/rrdtool/temperatura.png". Mam nadziej ze wymyslicie o co chodzi

. Nadajcie prawa wykonywalnosci dla tego pliku i zeby nobody tez mial prawa bo apach chodzi jako nobody. Tyczy sie to takze bazy ktora musi czytac (/etc/rrdtool/rrd/temperatura)
#!/bin/sh
echo Content-type: text/html
echo
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">'
echo '<HEAD>'
echo '<center>'
echo '<TITLE>RRDTOOL Index Page</TITLE>'
echo '</HEAD>'
echo
echo '<BODY bgcolor="#ffffff" text="#000000" link="#000000" vlink="#000000" alink="#000000">'
echo
echo '<H1>TEMPERATURA</H1>'
echo
rrdtool graph /var/www/rrdtool/temperatura.png \
--height=250 \
--width=800 \
--end now --start end-86400s \
--rigid \
DEF:wynik1=/etc/rrdtool/rrd/temperatura.rrd:1:AVERAGE \
DEF:wynik2=/etc/rrdtool/rrd/temperatura.rrd:2:AVERAGE \
DEF:wynik3=/etc/rrdtool/rrd/temperatura.rrd:3:AVERAGE \
DEF:wynik4=/etc/rrdtool/rrd/temperatura.rrd:4:AVERAGE \
DEF:wynik5=/etc/rrdtool/rrd/temperatura.rrd:5:AVERAGE \
DEF:wynik6=/etc/rrdtool/rrd/temperatura.rrd:6:AVERAGE \
DEF:wynik7=/etc/rrdtool/rrd/temperatura.rrd:7:AVERAGE \
CDEF:obc_1=0,wynik1,- \
CDEF:obc_2=0,wynik2,- \
CDEF:obc_3=0,wynik3,- \
CDEF:licz1=obc_1,obc_2,+ \
CDEF:licz2=obc_3,wynik4,+ \
CDEF:licz3=wynik5,wynik6,+ \
CDEF:licz4=licz1,wynik7,+ \
CDEF:licz5=licz2,licz4,+ \
CDEF:licz=licz3,licz5,+ \
AREA:obc_3#00BFFF \
STACK:obc_2#6A5ACD \
STACK:obc_1#4B0082 \
AREA:wynik4#FFD700 \
STACK:wynik5#FF8C00 \
STACK:wynik6#FF9999 \
STACK:wynik7#FF0033 \
GPRINT:licz:LAST:"aktualnie %2.2lf" > /dev/null
echo '<tr>'
echo '<td><DIV><B><center>DZIENNY</B></DIV>'
echo '<DIV><A HREF="/cgi-bin/temperatura"><IMG BORDER=1 ALT="uptime" SRC="/rrdtool/temperatura.png"></A><BR>'
echo '</td></tr>'
rrdtool graph /var/www/rrdtool/temperaturat.png \
--height=250 \
--width=800 \
--end now --start end-604800s \
--rigid \
DEF:wynik1=/etc/rrdtool/rrd/temperatura.rrd:1:AVERAGE \
DEF:wynik2=/etc/rrdtool/rrd/temperatura.rrd:2:AVERAGE \
DEF:wynik3=/etc/rrdtool/rrd/temperatura.rrd:3:AVERAGE \
DEF:wynik4=/etc/rrdtool/rrd/temperatura.rrd:4:AVERAGE \
DEF:wynik5=/etc/rrdtool/rrd/temperatura.rrd:5:AVERAGE \
DEF:wynik6=/etc/rrdtool/rrd/temperatura.rrd:6:AVERAGE \
DEF:wynik7=/etc/rrdtool/rrd/temperatura.rrd:7:AVERAGE \
CDEF:obc_1=0,wynik1,- \
CDEF:obc_2=0,wynik2,- \
CDEF:obc_3=0,wynik3,- \
CDEF:licz1=obc_1,obc_2,+ \
CDEF:licz2=obc_3,wynik4,+ \
CDEF:licz3=wynik5,wynik6,+ \
CDEF:licz4=licz1,wynik7,+ \
CDEF:licz5=licz1,licz2,+ \
CDEF:licz6=licz3,licz4,+ \
CDEF:licz=licz5,licz6,+ \
AREA:obc_3#00BFFF \
STACK:obc_2#6A5ACD \
STACK:obc_1#4B0082 \
AREA:wynik4#FFD700 \
STACK:wynik5#FF8C00 \
STACK:wynik6#FF9999 \
STACK:wynik7#FF0033 \
GPRINT:licz:LAST:"aktualnie %2.2lf" > /dev/null
echo '<tr>'
echo '<td><DIV><B><center>TYGODNIOWY</B></DIV>'
echo '<IMG BORDER=1 ALT="uptime" SRC="/rrdtool/temperaturat.png"></A><BR>'
echo '</td></tr>'
rrdtool graph /var/www/rrdtool/temperaturam.png \
--height=250 \
--width=800 \
--end now --start end-2678400s \
--rigid \
DEF:wynik1=/etc/rrdtool/rrd/temperatura.rrd:1:AVERAGE \
DEF:wynik2=/etc/rrdtool/rrd/temperatura.rrd:2:AVERAGE \
DEF:wynik3=/etc/rrdtool/rrd/temperatura.rrd:3:AVERAGE \
DEF:wynik4=/etc/rrdtool/rrd/temperatura.rrd:4:AVERAGE \
DEF:wynik5=/etc/rrdtool/rrd/temperatura.rrd:5:AVERAGE \
DEF:wynik6=/etc/rrdtool/rrd/temperatura.rrd:6:AVERAGE \
DEF:wynik7=/etc/rrdtool/rrd/temperatura.rrd:7:AVERAGE \
CDEF:obc_1=0,wynik1,- \
CDEF:obc_2=0,wynik2,- \
CDEF:obc_3=0,wynik3,- \
CDEF:licz1=obc_1,obc_2,+ \
CDEF:licz2=obc_3,wynik4,+ \
CDEF:licz3=wynik5,wynik6,+ \
CDEF:licz4=licz1,wynik7,+ \
CDEF:licz5=licz1,licz2,+ \
CDEF:licz6=licz3,licz4,+ \
CDEF:licz=licz5,licz6,+ \
AREA:obc_3#00BFFF \
STACK:obc_2#6A5ACD \
STACK:obc_1#4B0082 \
AREA:wynik4#FFD700 \
STACK:wynik5#FF8C00 \
STACK:wynik6#FF9999 \
STACK:wynik7#FF0033 \
GPRINT:licz:LAST:"aktualnie %2.2lf" > /dev/null
echo '<tr>'
echo '<td><DIV><B><center>MIESIECZNY</B></DIV>'
echo '<IMG BORDER=1 ALT="uptime" SRC="/rrdtool/temperaturam.png"></A><BR>'
echo '</td></tr>'
rrdtool graph /var/www/rrdtool/temperaturar.png \
--height=250 \
--width=800 \
--end now --start end-31536000s \
--rigid \
DEF:wynik1=/etc/rrdtool/rrd/temperatura.rrd:1:AVERAGE \
DEF:wynik2=/etc/rrdtool/rrd/temperatura.rrd:2:AVERAGE \
DEF:wynik3=/etc/rrdtool/rrd/temperatura.rrd:3:AVERAGE \
DEF:wynik4=/etc/rrdtool/rrd/temperatura.rrd:4:AVERAGE \
DEF:wynik5=/etc/rrdtool/rrd/temperatura.rrd:5:AVERAGE \
DEF:wynik6=/etc/rrdtool/rrd/temperatura.rrd:6:AVERAGE \
DEF:wynik7=/etc/rrdtool/rrd/temperatura.rrd:7:AVERAGE \
CDEF:obc_1=0,wynik1,- \
CDEF:obc_2=0,wynik2,- \
CDEF:obc_3=0,wynik3,- \
CDEF:licz1=obc_1,obc_2,+ \
CDEF:licz2=obc_3,wynik4,+ \
CDEF:licz3=wynik5,wynik6,+ \
CDEF:licz4=licz1,wynik7,+ \
CDEF:licz5=licz1,licz2,+ \
CDEF:licz6=licz3,licz4,+ \
CDEF:licz=licz5,licz6,+ \
AREA:obc_3#00BFFF \
STACK:obc_2#6A5ACD \
STACK:obc_1#4B0082 \
AREA:wynik4#FFD700 \
STACK:wynik5#FF8C00 \
STACK:wynik6#FF9999 \
STACK:wynik7#FF0033 \
GPRINT:licz:LAST:"aktualnie %2.2lf" > /dev/null
echo '<tr>'
echo '<td><DIV><B><center>Temperatura</B></DIV>'
echo '<IMG BORDER=1 ALT="uptime" SRC="/rrdtool/temperaturar.png"></A><BR>'
echo '</td></tr>'
Troche dlugie :>