Hallo zusammen,
folgendes soll gezeigt werden:
- Shellskript
-> Liest einen Temperatur und Feuchtigkeitssensor aus
-> erzeugt mit ausgelesenen Daten eine html-Datei
-> lädt diese alle 10 Sekunden per FTP auf einen Webserver
[font="monospace"]html_erzeuger.sh[/font]
#!/bin/sh
cd /usr/lib/DHT22/wiringPi/lol_dht22
date > /home/pi/weatherstation/wetter.log
sudo ./loldht 7 | grep *C >> /home/pi/weatherstation/wetter.log
cd /home/pi/weatherstation
HTML_DATEN=`cat wetter.log`
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"'
echo ' "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'
echo '<html xmlns="http://www.w3.org/1999/xhtml" lang="de">'
echo " <head>"
echo " <title>Supernova Wetterdaten 05/2017 </title>"
echo ' <style type="text/css">'
echo ' h1 {font-size: 40px; font-family: rockwell}'
echo ' h2 {font-family: rockwell}'
echo ' </style>'
echo " </head>"
echo ' <body style="background-color:#dd9000;">'
echo " <h1>Supernova</h1>"
echo ' <h2>Hier finden Sie die aktuellen Daten aus meinem Zimmer:</h2>'
echo " <p>"
echo $HTML_DATEN
echo " </p>"
echo ' <hr/>'
echo " </body>"
echo "</html>"
Display More
Ich war gezwungen ein "Start-Skript" zu scheiben, weil ich nicht wusste wie ich es sonst lösen hätte können. Meine ursprüngliche Überlegung war es, das vorhin gezeigte Skript ([font="monospace"]html_erzeuger.sh[/font]) sich selbst aufrufen zu lassen. (Ich wollte eine rekursive Endlosschleife erzeugen, hat aber nicht funktioniert.):
[font="monospace"]start_wetter.sh[/font]
#!/bin/sh
while :; do
./html_erzeuger.sh > index.html
echo "\$ uploadtest" | ftp supernova.w4f.eu > /tmp/ftp_wetter.log
sleep 10
done
Display More
Natürlich ist das erst der Anfang eines noch größeren Projekts. Ich wollte einfach auf die schnelle irgendetwas basteln das funktioniert. Es ist vielleicht nicht der schönste Code und außerdem bin ich noch ein ziemlicher Neuling was Linux und Programmieren angeht.
Ich würde mich sehr über Anregungen und Tipps freuen wie ich das Programm eventuell noch verbessern oder vereinfachen kann. Auch wäre ich dankbar, wenn ihr mich auf unsauberen Code aufmerksam macht und ich somit nicht unnötig viele Sicherheitslücken verursache, die es einem Angreifer womöglich leicht machen würde irgend einen Quatsch zu machen.
EDIT: Hier der Link zur Webseite: http://www.supernova.w4f.eu/