fehler beim pipen - aber wo liegt der fehler?

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
cordovan
Beiträge: 467
Registriert: 03.01.2004 22:37:28

fehler beim pipen - aber wo liegt der fehler?

Beitrag von cordovan » 31.01.2005 11:39:52

zu meine problem und was ich mir gedacht hab zum allgemeinen verständnis:

ich hab mehre netzwerke die alle auf einer zentrallen firewall retoutet werden. nun hab ich in einem netzsegemnt eine softwareverwaltungslösung die pc's aufsetzt und co, die via wol (magic cookie's) aufgeweckt werden.
das problem. die firewall verhindert direkt die broadcast's und das ist gewollt und soll so bleiben.

meine idee nun. ich lese den netzwerkverkehr und wenn ich ein magic cookie im betreffenden lan sehe sniff ich es, extrahiere die mac vom computer der geweckt werden sollte und generier ein neues datenpaket und schick das auf meinen anderen ports raus.

soweit so gut, ich hab leider aber irgendwie probleme beim pipen, vielleicht hat ja jemand einen tipp für mich:

tcpdump -i eth0 udp and host 10.0.0.99 and ip broadcast -n -x -l | grep 0x004 | cut -b 11-24 | wakeonlan


ich hab bei der pipe ein problem nach der grep anweisung, das ergebnis wird nicht in den cut befehl

und bei wakeonlan bräucht ich das ergebnis von cut als parameter ....

thx4help

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 31.01.2005 12:18:04

das scheint werder ein pipe- noch ein grep- Problem zu sein.
Die Daten werden (bei mir) von cut korrekt gelesen und geschrieben

Code: Alles auswählen

root@:~# tcpdump -i eth0 udp and ip broadcast -n -x -l | grep 0x004 | cut -b 11-24 >x.txt
root@:~# cat x.txt
3875 6a38 6537
677a 6868 7168

Benutzeravatar
cordovan
Beiträge: 467
Registriert: 03.01.2004 22:37:28

Beitrag von cordovan » 31.01.2005 13:13:58

thx für deinen versuch. bei mir geht es trotzdem leider nicht .... :-(

tcpdump -i eth0 udp and host 10.0.0.99 and ip broadcast -n -x -l | grep 0x004 | cut -b 11-24
liefert keine ausgabe am bildschirm

tcpdump -i eth0 udp and host 10.0.0.99 and ip broadcast -n -x -l | grep 0x004
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
0x0040: 000b cd5d 9e86 000b cd5d 9e86 000b cd5d ...].....].....]
liefert die ausgabe und der cut befehl sollte dann daraus den passenden teil extrahieren und an ein anderes programm weitergeben. funktioniert leider nicht


tcpdump -i eth0 udp and host 10.0.0.99 and ip broadcast -n -x -l | grep 0x004 | cut -b 11-24 > test.text
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes

bringt leider eine leere test.text .....

noch irgendwelche ideen?

thx4help

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 31.01.2005 13:28:22

dann müßte ja das "cut" Kommando spinnen.

versuche einmal folgendes:

Code: Alles auswählen

root@:~# tcpdump -i eth0 udp and ip broadcast -n -x -l | grep 0x004 >x.txt
root@:~# cat x.txt
root@:~# cat x.txt  | cut -b 11-24

Code: Alles auswählen

root@:~# cut --version
cut (coreutils) 5.2.1

Benutzeravatar
cordovan
Beiträge: 467
Registriert: 03.01.2004 22:37:28

Beitrag von cordovan » 03.02.2005 12:18:31

danke für deine antwort, hab es versucht. aus irgendeinem grund schreibt er es bei mir nicht in das textfile .....

der fehler an meiner pipe muss also am grep befehl liegen

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 03.02.2005 12:26:04

da hat doch noch grep was ausgespuckt :?
cordovan hat geschrieben: tcpdump -i eth0 udp and host 10.0.0.99 and ip broadcast -n -x -l | grep 0x004
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
0x0040: 000b cd5d 9e86 000b cd5d 9e86 000b cd5d ...].....].....]
liefert die ausgabe und der cut befehl sollte dann daraus den passenden teil extrahieren und an ein anderes programm weitergeben. funktioniert leider nicht

Benutzeravatar
cordovan
Beiträge: 467
Registriert: 03.01.2004 22:37:28

Beitrag von cordovan » 03.02.2005 13:01:46

ja ....

crados:/home/cordovan# tcpdump -i eth0 udp and host 10.0.0.99 and ip broadcast -n -x -l | grep 0x004
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
0x0040: 000b cd5d 9e86 000b cd5d 9e86 000b cd5d ...].....].....]
1 packets captured
1 packets received by filter
0 packets dropped by kernel

crados:/home/cordovan# tcpdump -i eth0 udp and host 10.0.0.99 and ip broadcast -n -x -l | grep 0x004 > test
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
1 packets captured
1 packets received by filter
0 packets dropped by kernel

crados:/home/cordovan# cat test

verstehe es langsam echt nicht mehr ... oder ist bash für mein vorhaben einfach die falsche methode :-(

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 03.02.2005 13:08:53

zwischen "4" und ">" muß ein Abstand sein, bzw. auch zwischen "4" und "|"
sonst wird angenommen daß du den Filedescriptor 4 anstatt 1 umleiten möchtest

du kannst auch sicherheitshalber "... grep 0x004 1>test" schreiben

Benutzeravatar
cordovan
Beiträge: 467
Registriert: 03.01.2004 22:37:28

Beitrag von cordovan » 03.02.2005 13:13:58

danke für deine rasche antwort. auf leerzeichen hab ich geachtet. sobald ich die grep anweisung unter " stelle schreibt er mir sofort raus command not found

Antworten