2009-11-27

人力検索はてな質問の補記

* AnonymousDiary を人力検索はてなの質問の補記に使うことをお許しください(質問文はこちら)。

tcpdumpネットワーク接続を開始したときに、キャプチャする方法

OSは、Ubuntu 8.04。シェルは、bashをそれぞれ使用しております。

下記、(1)、(2)の手順で、ネットワーク接続を開始したら、

tcpdumpパケットキャプチャするような設定を行いました。

OS再起動さてみたところ、正常に取得を開始してくれません。

そこで

下記、(3)、(4)の手順で試してみると、それぞれ不可思議な挙動を発見しました。

原因が分からず苦慮しております。ご教示いただけないでしょうか。

何卒、よろしくお願い致します。

(1)/etc/capture.sh というファイルに下記シェルスクリプトを書き込み

#!/bin/sh

tcpdump -i eth0 -s 1500 -C 10 -w /var/log/tcpdump/tcpdump`date '+%Y%m%d%H%M%S'`.log

(2)ネットワーク接続が完了したときに、コマンドが起動するよう

/etc/network/interfeces に次の1行を書き込みました。

up sh /etc/capture.sh

# This file describes the network interfaces available on your system

# and how to activate them. For more information, see interfaces(5).

# The loopback network interface

auto lo

iface lo inet loopback

# The primary network interface

auto eth0

iface eth0 inet static

address ???.???.???.???

netmask 255.255.255.0

gateway ???.???.???.???

up sh /etc/capture.sh

* ???は、適当な数が割り当てられてます。

OS再起動さてみたところ、正常に取得を開始してくれません。

そこで、(3)、(4)を試してみました。

(3)ネットワークリスタートさせると、つぎのようなエラーが返ってきます。

user@server:~$ sudo /etc/init.d/networking restart

* Reconfiguring network interfaces... SIOCADDRT: File exists

Failed to bring up eth0.

(4)ところが、一度、インターフェイスをdown、upしてから、ネットワーク再起動すると、tcpdumpが正常に動き出します。

user@server:~$ sudo ifconfig eth0 down

user@server:~$ sudo ifconfig eth0 up

user@server:~$ sudo /etc/init.d/networking restart

* Reconfiguring network interfaces... Received cookie: SQ_SYSTEM_SESSION=4gqai700bd5s0tdo9f0fafnbr7

tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 1500 bytes

  • capture.sh が永遠に終わらないコマンドなのはよくない とりあえず tcpdump に -c 20 とか付けて、終了するようにしてみる これでうまくいくなら、内部で tcpdump をデーモン化すればいい

  • ご回答、ありがとうございます。 tcpdump -c 20 を試してみましたが、サーバは期待に答えてくれませんでした。 上記の方法は、上手くいきませんでしたが、とりあえず、デーモン化を試し...

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん