Hallo,
ich habe eine (industrielle) Messeinrichtung, die eine TCP-Verbindung zur Datenübertragung aufbaut. Es wird darüber kein Protokoll (z.B. ftp) aufgebaut und abgewickelt, sondern nur eine "String" mit den Messwerten gesendet.
Als Zielport 7 (Echo) klappt gut.
nc -l -p (freier Port) auf Empfängerseite geht "im Prinzip" : die Daten werden empfangen. Das Problem: nc -l wird bei Rücksetzen der Verbindung geschlossen. Das passiert scheinbar zur Initialisierung des Messgerätes und bei Beenden der einzelnen Meßserien.
Hat jemand eine Idee für einen einfachen Dämon auf der Empfängerseite, der die Daten jeder neuen Verbindung aufnimmt und getrennt speichern kann?
tia
Bernhard
Bernhard Schiffner bernhard@schiffner-limbach.de (Do 12 Jan 2006 12:21:07 CET):
Hallo,
Hat jemand eine Idee für einen einfachen Dämon auf der Empfängerseite, der die Daten jeder neuen Verbindung aufnimmt und getrennt speichern kann?
in /etc/inetd.conf:
.... 7777 stream tcp nowait root /usr/local/bin/saveIt saveIt ...
in /usr/local/sbin/saveIt: #! /bin/bash cat >/tmp/saved.$$
On Thursday 12 January 2006 12:45, Heiko Schlittermann wrote:
Hat jemand eine Idee für einen einfachen Dämon auf der Empfängerseite, der die Daten jeder neuen Verbindung aufnimmt und getrennt speichern kann?
in /etc/inetd.conf: 7777 stream tcp nowait root /usr/local/bin/saveIt saveIt in /usr/local/sbin/saveIt: #! /bin/bash cat >/tmp/saved.$$
Ergebnis: Sehr leistungsfähig (10MB/s, Netzwerk ist Begrenzung).
gw1:~# time dd if=/dev/zero bs=1024 count=10240 | nc -q0 pc2 7777 10240+0 Datensätze ein 10240+0 Datensätze aus 10485760 bytes transferred in 0,897384 seconds (11684809 bytes/sec)
real 0m0.918s user 0m0.032s sys 0m0.310s gw1:~#
Danke Heiko!
Bernhard
Hi!
Heiko Schlittermann [2006-01-12 12:45 +0100]:
in /usr/local/sbin/saveIt: #! /bin/bash cat >/tmp/saved.$$
BTW, bitte nicht *wirklich* /tmp/foo.$$ benutzen, wenn Dir die Dateien Deiner Benutzer lieb sind. :) /var/log/saveIt oder ein anderes root:root 0755 Verzeichnis (oder mktemp benutzen) hilft Ärger sparen. :)
Martin
On Thursday 12 January 2006 15:36, Martin Pitt wrote:
Hi!
Heiko Schlittermann [2006-01-12 12:45 +0100]:
in /usr/local/sbin/saveIt: #! /bin/bash cat >/tmp/saved.$$
BTW, bitte nicht *wirklich* /tmp/foo.$$ benutzen, wenn Dir die Dateien Deiner Benutzer lieb sind. :) /var/log/saveIt oder ein anderes root:root 0755 Verzeichnis (oder mktemp benutzen) hilft Ärger sparen.
:)
Martin
Danke, es war nur als proof of concept gedacht. Inzwischen sind die Geräte-Lieferanten "dran": die können nämlich lange nicht so schnell senden, wie ich (jetzt nachgewiesenermaßen) empfangen kann und möchte.
Bernhard
Moin,
Bernhard Schiffner bernhard@schiffner-limbach.de wrote:
Hat jemand eine Idee für einen einfachen Dämon auf der Empfängerseite, der die Daten jeder neuen Verbindung aufnimmt und getrennt speichern kann?
<file> #!/bin/bash n=0 while [ /bin/true ] do let n++ nc -l -p $port > out.$n done </file>
mfg, Fabian
lug-dd@mailman.schlittermann.de