人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

tcpdump をつかって、キャプチャしたファイルを定期的に出力する方法、ないしシェルスクリプトをおしえてください。
サーバのネットワーク監視のため、通信を記録することを考えています。利用しているOSは、Ubuntu 8.04です。

tcpdumpをそのまま1、2週間実行させつづけると、メモリがやばいことになりそうです。
かと言って、手動で定期的に保存するのは少し面倒そうです。

2、3日おきくらいにに、capture20091021, capture20091024,...と自動的にファイルを出力させてくれるようなスクリプトないし方法を教えていただけると幸いです。

以上、何卒、よろしくお願いいたします。

●質問者: domodomodomo
●カテゴリ:コンピュータ
✍キーワード:OS tcpdump Ubuntu やばい キャプチャ
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● b-wind
●100ポイント

tcpdumpをそのまま1、2週間実行させつづけると、メモリがやばいことになりそうです。

なんでメモリが関係するのかよく分かりませんが。


Manpage of TCPDUMP

パケットを解析、表示するかわりに生のまま file に書き出す。このファイルはあとで -r オプションを用いれば表示することができる。 file として `-' を指示すると標準出力を用いる。


日付等に分割するなら、Apache 付属の rotatelogs コマンドがもっとも希望に近いでしょう。

ログローテーションとAnalogの導入(1/3)


2 ● y-kawaz
●100ポイント ベストアンサー

日付毎の分割だと面倒ですが、ファイルサイズによる分割であれば tcpdump 単体で可能です。

例えば以下のように起動すると dump というファイルに出力が始まり、10MBを超える毎に dump.1、dump.2 というファイルが出来ていきます。

/usr/sbin/tcpdump -C 10 -w dump

このように保存されたダンプファイルは以下のようにして読み込んで再生することができます。

/usr/sbin/tcpdump -r dump

特定日付のダンプが見たければ ls -l でファイルのタイムスタンプからすぐに判別できます。


3 ● TRTr
●100ポイント

tcpdumpを実行して、STDOUTからファイルに出力するシェルスクリプトを

cronで定期的に動かせばよいのではないでしょうか。

シェルがbashと勝手に仮定しますと

tcpdumpコマンドの最後に

> `date '+%Y%m%d'`.log

等とすれば日付のファイルが出力できます。(bash)

cronについては下記サイト等を参考にしてみてください。

http://www.express.nec.co.jp/linux/distributions/knowledge/syste...

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ