それはあなたが -W 3
と書いたからです -W 48
の代わりに .ただし、コマンドには他のエラーがあります。
オプション -G
意味:
-G rotate_seconds
指定されている場合、-w
で指定されたダンプ ファイルをローテーションします。 rotate_seconds ごとのオプション 秒。保存ファイルは -w
で指定された名前になります これには、strftime(3) で定義されている時刻形式が含まれている必要があります。時刻形式が指定されていない場合、新しいファイルごとに以前のファイルが上書きされます。
-C
と組み合わせて使用する場合 オプションを指定すると、ファイル名は「file」の形式になります
-G 3
を書いてから 、あなたが述べている間、これを 3 秒ごとに回転させます
...30 分のデータをキャプチャ
また、命名スキームが間違っています:上記から、
<ブロック引用>
-C
と組み合わせて使用する場合 オプションを指定すると、ファイル名は「file」の形式になります
したがって、名前の時刻形式を指定しても意味がありません。
さらに、-C
オプションには引数がありませんが、man ページによると、次のようにする必要があります:
tcpdump [ -AdDefIKlLnNOpqRStuUvxX ] [ -B buffer_size ] [ -c カウント ]
[ -C file_size ] [ -G rotate_seconds ] [ -F ファイル ][ -私 インターフェース ] [ -m モジュール ] [ -M 秘密 ][ -r ファイル ] [ -s スナップレン ] [ -T タイプ ] [ -w ファイル ][ -W ファイル数 ][ -E [email protected] algo:secret,... ][ -y データリンクタイプ ] [ -z 後回転コマンド ] [ -Z ユーザー ] [ 式 ]
マニュアルページには次のように記載されています:
<ブロック引用>
-C
raw パケットを保存ファイルに書き込む前に、ファイルが現在 file_size より大きいかどうかを確認します その場合は、現在の保存ファイルを閉じて、新しい保存ファイルを開きます。最初の保存ファイルの後の保存ファイルには、-w
で指定された名前が付けられます 1 から始まり上向きに続く数字の付いたフラグ。 file_size の単位 数百万バイトです (1,048,576 バイトではなく、1,000,000 バイト)。
したがって、 -C 100
を指定する必要があります 100MBのファイルを生成するために。
最終的に、コマンドは次のようになります:
tcpdump -i en0 -w /var/tmp/trace -W 48 -G 1800 -C 100 -K -n
これにより、(trace1、trace2、... という名前の) ファイルが、周期 48 で、1800 秒ごと (=30 分) または 100MB ごとのいずれか早い方で循環的にローテーションされます。
flabdablet の回答を拡張する (-G 1800
を変更する) -G 300
まで – 5 分ごとにローテーション – テスト目的のみ)、
tcpdump -i en0 -w /var/tmp/trace-%m-%d-%H-%M-%S-%s -W 3 -G 300
%m=month
を返します 、 %d=day of month
、 %H=hour of day
、 %M=minute of day
、 %S=second of day
、 %s=millisecond of day
、その結果
/var/temp/trace-03-02-08-30-56-1520002568
/var/temp/trace-03-02-08-35-56-1520002568
/var/temp/trace-03-02-08-40-56-1520002568
これらの厄介な断続的な問題のトレースを整理するのに非常に役立ちます。また、root でない場合は、sudo
することもできます もちろん、それを nohup にします:
sudo bash -c "nohup tcpdump -i en0 -w /var/tmp/trace-%m-%d-%H-%M-%S-%s -W 3 -G 300 &"
必要なのは
tcpdump -i en0 -G 1800 -w /var/tmp/trace-%H-%M.pcap
-G が -w ファイル名で期待する strftime フォーマット指定子は、完全な日付と時刻を表す必要はありません。そこに %H と %M だけがあり、正確に 30 分のローテーション時間がある場合、tcpdump の特定の呼び出しは、30 分間隔で 2 つの異なる %M 値を生成するだけであり、昨日のトレース ファイルは同じ時間に上書きされます。そして分数は再び回転します。