[vz-users] Q3D-Abfrage mit netcat in Datei umleiten?

Thorben Thuermer r00t at constancy.org
Wed Aug 29 17:04:14 CEST 2012


On Wed, 29 Aug 2012 16:44:03 +0200
"M. Hagedorn" <mic01 at uni-muenster.de> wrote:
> Am Mittwoch, 29. August 2012 14:10:14 schrieb Thorben Thuermer:
> > grep --line-buffered
> Hi.
> Ok, das hat geklappt. Danke.
> Blöderweise bricht der Datenstrom ja nie ab, so dass das Loggen im Prinzip 
> unendlich so weiter läuft. Kann ich es mit dem grep/cut/head-Befehl auch 
> irgendwie hinbekommen, dass nur EIN Zählerstand abgefragt wird und das Script 
> dann aussteigt?

grep -c1
gibt nur den ersten match aus, und beendet sich dann,
das --line-buffered ist dann auch ueberfluessig,
da beim beenden der puffer ohnehin geleert wird.

(netcat sollte sich dann mit grep beenden,
 wenn es sich beim naechsten versuch daten zu senden ein sigpipe einfaengt.
 (solche sachen funktionieren aber mit netcat manchmal nicht richtig.))

da du die daten eh noch weiterverarbeiten musst, empfielt es sich,
statt grep direkt sed zu benutzen, zB. (ungetestet):
data=$(netcat <ip> 7970 | sed -ne '/.*[^0-9]([0-9.]+)kWh.*/{s//\1/p;q}')
echo $data

ich faende allerdings eine kontinuierliche verarbeitung sinnvoller,
anstatt die verbindung staendig neu aufzubauen und immer nur einen wert
zu lesen...
im prinzip kannst du direkt mit einer konstruktion aus:
netcat | sed | mysql
den zaehler auslesen, die werte aus dem strom in insert-befehle packen,
und die an mysql weitergeben.
(man koennte auch von sed zu awk upgraden, und damit nur jeden x-ten wert
 oder einen pro minute etc. ausgeben lassen)

ab einem gewissen grad der komplexitaet solltest du aber auch ueberlegen,
ein "richtiges programm" statt einem schellscript zu benutzen...
zB vzlogger ;) (jemand hatte ja auch den ansatz, vzlogger statt mit der vz.org
 middleware mit einem einfacheren script zu nutzen)
oder ein perl-script (gab es das nicht auch schon?)
oder vzlogger so umbauen, dass er direkt in eine datenbank loggt.

> Danke nochmal.
> Michael

- Thorben


More information about the volkszaehler-users mailing list