揮発性のメモ2

知識をメモ書きしておく

tcpdumpで、ファイルに保存されない

tcpdump -i eth0 -X -nn -s0 udp port 12345 -w /tmp/hoge.cap

tcpdumpでこう書いたとき、ファイルに保存されないことがある。
ある程度溜まると、まとめて4096バイトずつ保存される。

つまり、これはバッファリングされてるやつ

liebestraumtomo.hatenablog.com

 -U
 --packet-buffered
        If the -w option is not specified, or if it is specified but the
        --print flag is also specified, make the printed  packet  output
        ``packet-buffered''; i.e., as the description of the contents of
        each packet is printed, it will be written to the standard  out-
        put,  rather than, when not writing to a terminal, being written
        only when the output buffer fills.

        If the -w option is specified, make the saved raw packet  output
        ``packet-buffered'';  i.e.,  as each packet is saved, it will be
        written to the output file, rather than being written only  when
        the output buffer fills.

        The  -U  flag will not be supported if tcpdump was built with an
        older version of libpcap that lacks  the  pcap_dump_flush(3PCAP)
        function.

-U をつけると、パケット単位でバッファリングになる。 つまり受信したらすぐ出力することになるので 実質バッファリングしない指定になる

tcpdump -i eth0 -X -nn -s0 udp port 12345 -U -w /tmp/hoge.cap

やったぜ