tcpdump出力ファイルが空であるのはなぜですか?

tcpdump出力ファイルが空であるのはなぜですか?

このオプションを使用してキャプチャをファイルに保存すると、Red Hat Enterprise Linux Server release 6.5結果ファイルは空になります。tcpdump-w

[root@plop ~]# tcpdump -n -w tcpdump.cap
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
^C217 packets captured
217 packets received by filter
0 packets dropped by kernel
[root@plop ~]# cat tcpdump.cap
[root@plop ~]# ll tcpdump.cap
-rw-r-----. 1 root root 0 Aug 25 14:13 tcpdump.cap
[root@plop ~]#

>また、andを使用してコマンド出力をリダイレクトしようとしましたが、&>常に空のファイルが表示されます。

その理由は何ですか?

気づく:

  • ファイルにリダイレクトされない場合、端末は正しい出力(多数のパケット)を見ることができます。
  • 同じことをしましたが、期待thsarkどおりに動作しました(出力ファイルが正しい)。
  • バージョンtcpdumptcpdump version 4.1-PRE-CVS_2012_02_01
  • バージョンlibpcaplibpcap version 1.4.0
  • そのオプションを試しましたが、-U問題は解決されませんでした。

ベストアンサー1

そのオプションを追加してみてください-U

マニュアルページから:

   -U
   --packet-buffered
          If  the  -w option is not 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
          output, 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() function.

おすすめ記事