GNU/Linux >> Linux の 問題 >  >> Linux

tcpdump – -G、-W、および -C を使用してキャプチャ ファイルをローテーションします

それはあなたが -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 値を生成するだけであり、昨日のトレース ファイルは同じ時間に上書きされます。そして分数は再び回転します。


Linux
  1. Linuxでsedを使用してテキストファイルを検索および置換する

  2. Rsyncを使用してファイルを送信およびダウンロードする方法

  3. wget vs curl:wget と curl を使用してファイルをダウンロードする方法

  1. TarとOpenSSLを使用してファイルとディレクトリを暗号化および復号化する方法

  2. Crocを使用してコンピュータ間でファイルとフォルダを安全に転送する

  3. Podmanルートレスコンテナでのファイルとデバイスの使用

  1. Linuxでtcpdumpコマンドを使用してパケットをキャプチャおよび分析する方法

  2. ls と grep を使用して実行可能ファイルを見つける

  3. find と xargs を使用して rm でファイルを削除する