Problem bei Live-Auswertung von tshark-Daten

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
piettheweasel
Beiträge: 2
Registriert: 15.01.2008 14:43:14

Problem bei Live-Auswertung von tshark-Daten

Beitrag von piettheweasel » 15.01.2008 17:10:54

Ich habe folgendes vor:
Mit tshark durchgängig den Netzwerkverkehr mitschneiden und den Inhalt in einen Puffer schreiben (zb fifo):
tshark -i eth0 -V >> tsharkpuffer

Dann will ich parallel den Verkehr nach bestimmten Mustern durchsuchen, bzw nur für mich interessante Zeilen filtern (hier Pseudo-filter) und auf dem bildschirm ausgeben:
cat tsharkpuffer | grep "xxx" | sed "s/y/z/g" | grep "w"

Leider funktioniert das ganze nicht, da tshark die Ausgabe puffert (-l für flush funktioniert anscheindend nicht mit Option -V). Ich bekomme einfach nach dem ersten grep die Ausgabe nicht mehr direkt weitergepipt... :-(
Weiss einer da ne Lösung? Das ganze soll nachher auf einem Bildschirm bestimmt Daten des laufenden Verkehrs in Realtime ausgeben.

cosmac
Beiträge: 4576
Registriert: 28.03.2005 22:24:30

Beitrag von cosmac » 17.01.2008 13:41:15

hi,

vielleicht liegt das garnicht am tshark sondern am cat,
Probier mal tail:

Code: Alles auswählen

tail -f tsharkpuffer | grep "xxx" | sed "s/y/z/g" | grep "w"
P.S. herzlich willkommen im Forum!
Beware of programmers who carry screwdrivers.

Danielx
Beiträge: 6419
Registriert: 14.08.2003 17:52:23

Beitrag von Danielx » 17.01.2008 23:17:36

Könnte so etwas eigentlich auch funktionieren:

Code: Alles auswählen

grep "xxx" tsharkpuffer | ...
oder so:

Code: Alles auswählen

grep "xxx" < tsharkpuffer
:?:

piettheweasel
Beiträge: 2
Registriert: 15.01.2008 14:43:14

Beitrag von piettheweasel » 19.01.2008 10:06:09

Vielen Dank für die Antworten!
Hab das Problem mittlerweile selber gelöst.
Damit tshark die Daten immer direkt wegschreibt, muss man die Option -l angeben, welche aber anscheinend nicht zusammen mit der Option -V funktioniert.
Daher hab ich das nun wie folgt gelöst:
Zur Aufzeichnung:
tshark -i eth0 -l -w tsharkpuffer
und zur Auswertung :
tshark -r tsharkpuffer -V | grep ...

tsharkpuffer ist hierbei eine normale cap-datei (kein fifo).
Da tshark die Datei immer weiter vergrößert, muss man für den pausenlosen Einsatz die Größe des Puffers beschränken. Dafür gibt es bei tshark die Option '-a filesize:x' , welche das capturen nach x kilobyte Daten abbricht.
Um durchgängig Daten zu erfassen, wird die Aufzeichung mit tshark in einer Endlosschleife gestartet (Zeichnet bis zur beschränkten Dateigröße auf und fängt danach wieder von vorne an).

Antworten