2018年10月11日木曜日

【tcpdump】週単位でファイル上書きローテーション【Linux】

sudo tcpdump -i eth0 -s 0 -Z user -G 3600 -w dmp_%a_%H.pcap -z ./gzf.sh
tcpdump -i eth0 -s 0 G 3600 -Z root -w dmp_%a_%H.pcap -z ./gzf.sh
など

●解説

  • -G:3600を指定しているため、1時間毎にファイルが生成される。ファイルのタイムスタンプとして、曜日(%a)と時間(%H)を指定するため、1週間毎にローテーションされる。%aの代わりに%uを指定しても良い。1月ローテーションにする場合は、%d_%Hまたは、%dなどにする。
  • -Z user:実行するユーザー。実在するユーザを指定する。
  • -z gzf.sh:圧縮&上書き時にプロンプトを表示しない。プロンプトが表示されてしまうと、tcpdumpが異常終了してしまうため、強制上書きオプションを指定する。

●gzf.sh

#!/bin/sh
/bin/gzip -f ${1}

●事前作業

ファイル名のタイムスタンプが必要なため、perl-DateTimeが必要。当然、tcpdumpも必要。
yum install perl-DateTime
yum install tcpdump

●手順

echo '#!/bin/sh' > gzf.sh
echo '/bin/gzip -f ${1}' >> gzf.sh
chmod 777 gzf.sh
tcpdump -i ens192 -s 0 -G 3600 -w dmp_%a_%H.pcap -z ./gzf.sh -Z root

●実行



●実行中画面

①取得開始直後(8時)


②1時間後(9時)


③2時間後(10時)


④次の日


⑤1週間以上経過



0 件のコメント:

コメントを投稿