私は自分のマシンとリモートマシン上で同時に "tcpdump"を実行するスクリプトを書く必要があります。キャプチャの開始点(0秒目)は同時でなければならないので、分析で2つのtcpdumpsを比較することができます。同期付きシェルスクリプト
私はこれを達成する方法はありますか?
私は自分のマシンとリモートマシン上で同時に "tcpdump"を実行するスクリプトを書く必要があります。キャプチャの開始点(0秒目)は同時でなければならないので、分析で2つのtcpdumpsを比較することができます。同期付きシェルスクリプト
私はこれを達成する方法はありますか?
(たとえば、誤差範囲が200msの場合など)おおよその時間が必要な場合は、両方のマシンが同じ時間(たとえば、NTP経由)であることを確認してから、たとえばを使用してください。 cronを使用すると、両方のコマンドを同時に実行できます。
もっと頻繁に使用したい場合は、cron
の代わりにat commandを使用します。いくつかの簡単な日付演算を行うことができます。これを参照してください。
や睡眠を指定した時間まで(つまり、ローカルおよびリモートの)両方のスクリプトで
を、ローカルの実行コマンドを実行し、ssh
を使用してリモートマシン上でコマンドを実行します。
Pythonでは、datetime
モジュールを使用することができます。これを参照してください。
アイデアはほとんどこれです:
ssh
)ssh
10秒またはさらに悪い場合:)tcpdump
の両方でスクリプト - かなり同期されるべきです(いくつかの許容範囲がありますが、最近のシステムでは50msを超えるとは思われません)。希望します。
#!/usr/bin/python
import time
import sys
now = time.time()
mod = float(sys.argv[1])
until = now - now % mod + mod
print "sleeping until", until
while True:
delta = until - time.time()
if delta <= 0:
print "done sleeping ", time.time()
break
time.sleep(delta/2)
このスクリプトは、次の「丸い」または「シャープ」の時間までスリープ:
は、ここで私は、複数のテストクライアントを同期させるために今書いた何か。
単純な使用例は、ある端末で./sleep.py 10; ./test_client1.py
を実行し、別の端末で./sleep.py 10; ./test_client2.py
を実行することです。
マシンの時計が同期されていることを確認する必要があります。
また、tcpdumpでこれらのオプションのいずれかを使用して、完全なタイムスタンプを与えるものを使用してください。
最後に、あなたは(ほぼ)同時に複数のマシン上でコマンドを起動するexecnetようなものを実行することができます。
200 MSはおそらくあなたが得る限り近くにあります。可能であれば、tcpdumpでMSレベルのタイムスタンプを含む形式を使用してください(私はtcmpdumpを使用しません。おそらくデフォルトではそこにあります)。がんばろう。 – shellter