Si quiero tcpdump solicitudes DNS de clientes (en un enrutador OpenWrt 10.04), entonces yo
root@ROUTER:/etc# tcpdump -n -i br-lan dst port 53 2>&1
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on br-lan, link-type EN10MB (Ethernet), capture size 96 bytes
22:29:38.989412 IP 192.168.1.200.55919 > 192.168.1.1.53: 5697+ A? foo.org. (25)
22:29:39.538981 IP 192.168.1.200.60071 > 192.168.1.1.53: 17481+ PTR? 150.33.87.208.in-addr.arpa. (44)
^C
2 packets captured
3 packets received by filter
0 packets dropped by kernel
Eso está completamente bien. Pero. ¿Por qué no puedo canalizar la salida de tcpdumps en tiempo real?
root@ROUTER:/etc# tcpdump -n -i br-lan dst port 53 2>&1 | awk '/\?/ {print $3}'
^C
root@ROUTER:/etc#
Si hago awk, etc. después de tcpdump, no obtengo NINGUNA salida ¿Porqué es eso? ¿Por qué no puedo procesar la salida de tcpdump con canalización en tiempo real? (de modo que, por ejemplo, en el ejemplo solo se muestra la tercera columna)
¿Hay alguna solución para esto?