32
38

More than 5 years have passed since last update.

tcpdumpでファイルのローテーション

Last updated at Posted at 2014-06-10

tcpdumpを使って-wオプションでキャプチャ結果をファイルに保存する際に,

  • 一定のファイルサイズ毎
  • 一定時間毎

で,保存先のファイルを変更する方法.

一定のファイルサイズ毎

-Cオプションでファイルサイズ(MByte単位)を指定する.1Mbyte毎にローテーションしたい場合は

$ sudo tcpdump -w test.pcap -C 1 -ni eth0

とする.1Mbyteを超える毎に,test.pcap, test.pcap1, test.pcap2, test.pcap3, のように保存先のファイルが変更される.

一定時間毎

-Gオプションで秒数を指定し,-wで指定する保存先のファイル名にstrftime(3)に準じた時刻情報のフォーマットを含める.60秒ごとにローテーションし,ファイル名に年月日(%F)時分秒(T)を入れたい場合は

$ sudo tcpdump -w test-%F-%T.pcap -G 60 -ni eth0

とする.60秒経過する毎に,test-2014-06-10-10:49:09.pcap, test-2014-06-10-10:50:09.pcap, というファイルができる.
ファイル名に時刻情報のフォーマットが含まれていない場合(-w test.pcapなど)には, ファイルが上書きされる ので注意が必要.

ローテーション後にコマンドを実行

-zオプションでコマンドを指定すると,ローテーションされたファイルに対してコマンドを実行できる.例えば,ローテーションされたファイルをgzipで圧縮したい場合には

$ sudo tcpdump -w test.pcap -C 1 -z gzip -ni eth0

とすると,ローテーション直後に自動的に

$ gzip test.pcap

が実行される.

-zオプションで指定するコマンドとして,2つ以上の引数が必要なコマンドや第1引数以外にファイル名を取るコマンドを使いたい場合は,そのコマンドをwrapしたシェルスクリプトなどを作り,そのスクリプトを-zで実行する必要がある.

32
38
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
32
38