マニュアルページを読んでStackExchangeとより広いインターネットを検索したにもかかわらず、時間ベース、回転、制限された数のtcpdumpを作成する方法が見つかりませんでした。
たとえば、毎時間24時間以下のファイルを持ちたいとします。しかし、24個のファイルの後にtcpdumpを停止したくないので、最も古いファイルを削除して新しいファイルを作成したいと思います。永久に実行されますが、24個以上のファイルを生成したくないことを望みます。
マニュアルページでは、-C -W -G
一緒に使用するとこれを行うことができるとマークしているようですが、テストではまだこれが可能であることを示していませんでした。
5ファイル以降の使用-G -W
とstrftime
終了
# tcpdump -w foo.%F_%H%M%S -G 5 -W 5 -Z root port 22
tcpdump: listening on enp0s3, link-type EN10MB (Ethernet), capture size 65535 bytes
Maximum file limit reached: 5
これら3つを組み合わせて使用すると、時間フレームごとに生成されるファイルの数だけが制限されるようです。たとえば、以下は各5秒ウィンドウで最大5 x 1 MBのファイルをキャプチャします。 5秒以内に5MBを超えると、最後の5MBだけが保持されます。ただし、ファイルの総数は常に増加します。
# tcpdump -w foo.%F_%H%M%S -G 5 -C 1 -W 5 -Z root port 22
これにより、5 x 1MBのファイルがキャプチャされ、リングで上書きされます。
# tcpdump -w foo -C 1 -W 5 -Z root port 22
しかし、サイズの代わりに時間ごとに回転したいと思います。
ベストアンサー1
毎分6つのキャプチャファイルを無期限に生成する次の例を見てみましょう。
# tcpdump -i eth0 -G 10 -w dump-%S.pcap
。
%S
テンプレートファイル名に2番目の時間変数のみを指定し、回転時間範囲を10秒に指定します-G
。キャプチャ時間が1分ごとに変更されると、tcpdump
前の秒の表示ファイルが上書きされます。
これで、毎時循環と毎日の循環キャプチャを実行できます。
# tcpdump -i eth0 -G 3600 -w dump-%H.pcap
。
ここでも同じ原則が適用されます。tcpdump
3600秒ごとに新しいファイルが作成され、現在の時間に沿って名前が付けられます。日付を変更すると、前回のファイルが順番に置き換えられます。