• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Netzwerkmeldungen auswerten & entsprechend reagieren

Hallo Gemeinde,
ich hoffe, Ihr könnt mir bei meinem Problem kleine Hilfestellungen leisten. Mein Wissen reicht einfach nicht aus.
Also, ich habe einen Client C1, einen C2 und einen Server S.
Im Bedarfsfall schickt z.B. C1 eine Netzwerkmeldung auf z.B. Port 1234 an S und soll somit S auffordern, z.B. Temperaturdaten an C1 zurück zu schicken. S generiert daraufhin die Temperaturdaten und sendet diese an C1. Klingt ja irgendwie nicht sooo schwierig, ich bekomme es aber nicht hin.
Gleiches Vorgehen soll natürlich auch mit C2 funktionieren. Schön wäre es, wenn S die eingegangene Netzwerkmeldung noch überprüfen würde, indem z.B. der Meldungsinhalt verglichen wird.
Zusammenfassung:
1: C1 sendet "Temperaturen bitte" an S
2: S prüft, ob "Temperaturen bitte" gesendet wurde,
wenn ja, dann
2.1: S "besorgt" die Temperaturwerte
2.2: und sendet diese an C1 (IP-Adr. ist S ja bekannt)
wenn nein, macht S nix
3: S wartet auf Netzwerkmeldungen auf Port 1234

Ich hoffe, meine Darstellung ist verständlich und jemand hat Lösungsvorschläge für die Konfiguration des Servers. Clientseitig "läuft" alles schon.
Schon jetzt vielen Dank.

Gruss aus dem z.Z. ziemlich verschneiten NRW

P.S. meine S ist meistens in openSuSE Server (10.1, 10.3, 11.1)
 
mp3 schrieb:
Clientseitig "läuft" alles schon.
Mit was schickst Du den Deine Anfrage an den Server? (Script / Protokoll / Port usw...)
Was für Temperaturwerte soll Dir denn der Server aufbereiten?
Auf welche Art und Weise möchtest Du die Werte zurück geschickt bekommen?


Einfacher ist es, wenn Du z.B. ein Script über ssh remote auf dem Server S ausführst....
Du brauchst dann nur auf dem Server S ein Script erstellen, dass Dir die entsprechende Bildschirmausgabe aufbereitet.
Das Script kannst Du dann von jedem beliebigen Client aus starten.
z.B.
Code:
C1:/tmp # ssh root@S /tmp/temperatur_auslesen.sh

Fühler   Wert
1        32,4°C
2        41,9°C

hier solltest Du noch einige Infos darüber finden.....
http://www.google.de/#hl=de&num=30&newwindow=1&q=ssh+befehl+remote+ausf%C3%BChren&meta=&aq=f&oq=ssh+befehl+remote+ausf%C3%BChren&fp=58f63fc8fdffec64
 
Mehr Informationen, wie der Server die Temperaturdaten vearbeitet bzw. was er genau damit macht sind nötig, wie mein Vorposter das schon erwähnt hat.

Was machen den die Clients mit den bearbeiteten Daten, die der Server ihnen zurück schickt?

PS:

Es wäre sicherlich einfacher, wenn die Clients, ab einem bestimmten Temperaturwert, eine e-Mail an den Administrator schicken, der dann die Ursache findet und beseitigt.
 
OP
M

mp3

O.K., ich habe eventuell das Szenario unvollständig beschrieben, sorry...
Bei den Clienten handelt es sich um Netzwerkkameras. Dies können automatisiert, oder auf Wunsch eine Netzwerknachricht versenden.
Diese Nachricht kann ich auf dem Server empfangen, indem ich z.B. auf Port 1234 "lausche":
-> server:/ # netcat -vv -l -p1234
-> listening on [any] 1234 ...
Sobald die Kamera die Nachricht abgeschickt hat, empfängt der Server diese:
-> connect to [192.168.10.1] from webcam.home.de [192.168.10.100] 1025
-> Temperaturen bitte sent 0, rcvd 18
Der Server weiss, von wem (IP der Kamera 192.168.10.100) die Nachricht gekommen ist. und sollte nun die Temperaturen mittels eines Scriptes an diese Kamera zurückschicken. Für die Ermittlung der Temperaturen selbst sowie das Versenden habe ich ein kleines Script geschrieben.
U.a. ist zum Versenden nachfolgender Part zuständig. Manuell klappt das auch wunderbar, nur eben nicht automatisch.
-> echo $(date): $Temp_Out"°C " $Temp_In"°C " $Temp_Heater"°C "> /dev/tcp/192.168.10.100/1234
Die Temperaturermittlung erfolgt hierbei übrigens mit "digitemp" und digitalen Temperatursensoren DS1820.

Ich benötige eine Lösung, die
1. dauerhaft an einem Port lauscht (hier z.B. 1234)
2. prüft, ob die empfangene Meldung den Textteil "Temperaturen bitte" enthält
3. und dann die ermittelten Temperaturen an die jeweilige IP-Adr. einer Kamera schickt.

Zur Zeit sendet der Server alle 5 min. die Temperaturen per cronjob an die jeweiligen Kameras. Diese Informationen werden dann ins Bild eingeblendet.
Ich habe auch ein jpg davon gemacht, ich weiss aber nicht, ob ich das hier im Forum hochladen kann, oder ob ich einen externen Speicherplatz nutzen muss.

Vorerst vielen Dank.
 
So vielleicht?

Script: temperatur_to_webcam.sh
PS: In dem Script fehlt jetzt allerdings noch das Ermitteln der IP-Adresse der Webcam und das Aufbereiten der Temperaturwerte.
Code:
#!/bin/sh

netcat $*
if [ "$?" = "0" ] ; then
        # hier die IP ermitteln und die Temperaturwerte aufbereiten....
        echo $(date): $Temp_Out"°C " $Temp_In"°C " $Temp_Heater"°C " | netcat $WEBCAM_IP 1234
        $0 $*
fi

Das Script kannst Du dann mit Deinen gewünschten netcat-Parametern aufrufen.
Code:
/tmp/temperatur_to_webcam.sh -vv -l -p1234

Innerhalb des Script wird einmal netcat mit Deinen Parametern gestartet.
Wenn netcat nach dem Connect beendet wurde, wird der echo-Befehl ausgeführt und das Script startet sich wieder selber ($0 $*).
 
Oben