Hallo zusammen,
ich möchte per shell skript daten in eine MySQL Tabelle schreiben.
Aktuell geht es mir um die Temperatur mehrerer DS18S20 per Digitemp
gemessen. Später sollen aber noch andere Sachen gespeichert werden.
Erseinmal habe ich mir eine Tabelle templog angelegt:
1 | mysql> describe templog;
|
2 | +------------+--------------+------+-----+---------+-------+
|
3 | | Field | Type | Null | Key | Default | Extra |
|
4 | +------------+--------------+------+-----+---------+-------+
|
5 | | sensorID | varchar(20) | YES | | NULL | |
|
6 | | time | datetime | YES | | NULL | |
|
7 | | temperatur | decimal(5,2) | YES | | NULL | |
|
8 | +------------+--------------+------+-----+---------+-------+
|
9 | 3 rows in set (0.06 sec)
|
Ob für das Feld sensorID der Datentyp varchar nun Optimal ist werde ich
erst sehen wenn das ganze läuft. Ich bin mir noch nicht ganz sicher ob
ich dort die Seriennummer oder den Namen (z.B. Aussentemperatur1)
speichere, aber zum Spielen sicherlich gut genug.
Allerdings bin ich mir momentan noch nicht im klaren wie ich die Daten
per Shell in die Datenbank bekomme. Ich habe auf dem Rechner wo Digitemp
läuft keine eigene Datenbank, nur den MySQL-Client, auch ist dort kein
PHP Installiert. Ich arbeite also mit einem externen MySQL (das
funktioniert auch!).
Wie wäre also der beste weg die Daten in die Tabelle zu schaufeln? Das
Skript soll per Cron alle 10 minuten ausgeführt werden. Die verbindung
sollte somit auch nicht ständig offen bleiben. Digitemp habe ich
momentan so konfiguriert das es mir per sensor nur die Temperatur
ausgibt:
1 | dknbli10:~# digitemp_DS9097 -t 2 -q
|
2 | 10.69
|
3 | dknbli10:~#
|
Den Messzeitpunkt bekomme ich ja mit /date '+%Y-%m-%d %T'/ ja passend
für den Datentyp datetime der Datenbank vorgekaut.
Wie bekomm ich die daten nun in die Datenbank? Das einzige was ich mir
bisher ergooglen konnte ist die vorgehensweise das ich mir alles in
einer Datei zusammenschreibe und dann per LOAD DATA LOCAL INFILE in
MySQL in die Tabelle schiebe. Hier bin ich allerdings auch noch nicht
ganz zum Ziel gekommen. Gibt es noch eine "schönere" Methode als die von
mir beschriebene?
Achja, auf dem "Meßrechner" läuft ein Debian Linux, die Datenbank
ebenfalls, allerdings auf einem VServer irgendwo in den unendlichen
Weiten des Internets ;-)
Gruß
Dennis