суббота, 23 июня 2012 г.

Температура + mrtg

Дошли руки и до создания графика температуры. Выглядит это примерно так:
Собственно ничего нового не изобрёл, практически всё взято отсюда. Единственное отличие, в том что у меня два датчика которые рисуются в mrtg, соответственно две линии и данные для одной линии берутся напрямую с датчика, а для второй из базы MySQL, т.к. второй датчик стоит на другом конце города. На графике за день видна ступенька, это результат отсутствия связи с удалённой точкой.
Скрипт разруливающий всё это безобразие выглядит так:




#!/bin/sh
temp=`digitemp_DS9097  -t 0 -q -c  /etc/svmthemp` #Внутренний датчик
sleep 2
temp2=`digitemp_DS9097  -t 0 -q -c  /etc/svmthemp2`#Внешний датчик
NOW="$(date +"%Y-%m-%d %H:%M:00")"  # Дата/время
MyUSER="имя пользователя"
MyPASS="пароль"
MyHOST="хост"
qry="UPDATE  meteo SET  temperature='$temp', update='$NOW' WHERE id ='outdoor1';UPDATE  meteo SET  temperature='$temp2', update='$NOW' WHERE  id ='indoor0';SELECT temperature FROM  meteo WHERE id='outdoor0';" #Запрос который записывает свежие данные с наружного (indoor1) и внутреннего датчика и берёт данные от удалённого датчика
df=`/usr/bin/mysql -u $MyUSER -h $MyHOST -p$MyPASS -N << eof
$qry
eof` # Ключ -N нужен для того, что бы выводился только результат запроса без названия таблицы


# Записываем всё в файл, из которого mrtg будет брать данные
echo $df > /var/www/mrtg/th
echo $temp >> /var/www/mrtg/th
echo "15 days, $NOW" >> /var/www/mrtg/th
echo "Thermal State" >> /var/www/mrtg/th


Остаётся только добавить этот скрипт в крон, для запуска с периодичностью скажем раз в 5 минут


*/5 * * * * /usr/local/bin/mythemp


Настройка mrtg (в ubuntu /etc/mrtg.conf)



Target[thermal]: `cat /var/www/mrtg/th`
Pagetop[thermal]:

Thermal State


Title[thermal]: Thermal State
PNGTitle[thermal]: The temperature in the city of Vyatskie Polyany
MaxBytes[thermal]: 50
AbsMax[thermal]: 50
LegendI[thermal]: Outer
LegendO[thermal]: Inner
kMG[thermal]: C
Options[thermal]: nopercent,gauge,noinfo
YLegend[thermal]: Temperatre, C
ShortLegend[thermal]:
Legend1[thermal]: external
Legend2[thermal]: internal



Больше ничего не надо, скрипт mythemp будет раз в 5 минут обновлять файл /var/www/mrtg/th , демон mrtg будет его автоматически читать и рисовать график.

Комментариев нет :

Отправить комментарий