LoginSignup
4
2

More than 5 years have passed since last update.

tcpdump でパイプに渡すときは -l する

Posted at

下記のようなコマンドを打って見ていたら通信のタイミングと tcpdump の出力のタイミングが合わなかった。が、表示された時刻は合っていた。

-lしない時
# (tcpdump -nn -i eth0 port 53 | grep qiita) &
# date; dig +short qiita.com.; while :; do echo -n . ; sleep 1; done
Thu Jul 17 23:06:15 JST 2014
54.238.54.221
......................................23:06:15.253345 IP 192.168.37.250.53967 > 192.168.37.10.53: 13341+ A? qiita.com. (27)
.....^C

これはバッファリングだろうと TCPDUMP(8) を見ると以下のように書かれている。

TCPDUMP(8)
-l     Make stdout line buffered.  Useful if you want to see the data while capturing it.  E.g.,
       ''tcpdump  -l  |  tee dat'' or ''tcpdump  -l   > dat  &  tail  -f  dat''.

line buffer してくれるのようになる。という訳で -l をつけたら行単位でさっさと渡してくれるようになったようだ。

-lした時
# (tcpdump -nn -l -i eth0 port 53 | grep qiita) &
# date; dig +short qiita.com.; while :; do echo -n . ; sleep 1; done
Thu Jul 17 23:11:54 JST 2014
23:11:54.571012 IP 192.168.37.250.50944 > 192.168.37.10.53: 34052+ A? qiita.com. (27)
54.248.227.194
.....^C
4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2