tsharkコマンドを繰り返し、1分ごとに出力ファイル名を変更するスクリプト

tsharkコマンドを繰り返し、1分ごとに出力ファイル名を変更するスクリプト

私はUnixに初めてアクセスし、60秒ごとにtsharkコマンドを繰り返すためのクイックコードを要求したいと思います。

私が実行したいコマンドは次のとおりです。

 tshark -z io,stat,1,tcp.port==80,tcp.port==443 -a duration:60  > filename.txt

このコマンドをループに入れ、出力ファイル名が変更されるたびに60秒ごとに再実行する必要があります。ファイル名の指定に時間と日付を使用するか、数値ステップカウンタを使用する方が簡単です。

どんな提案がありますか?

ありがとう

答え1

公開したコマンドの実行には既に約 60 秒かかり、次のことができます。

while true; do tshark ... > "tshark-$(date +%F-%T).txt"; done

これにより、次のような結果が生成されますtshark-2017-02-16-11:44:22.txt

答え2

このコマンドをループで繰り返すと、1回のtshark出口と次のtshark出口との間で送信され、パケットをキャプチャする準備ができたパケットがありません。

おそらくより良いアプローチは、一度使用dumpcapして毎分新しいファイルを作成するように指示することです。次に、必要に応じてこれらのダンプから統計を取得します。生のダンプファイルを使用すると、そのファイルからすべての可能な情報を取得できます。

それは次のとおりです。

dumpcap -b duration:60 -w dump.pcap

これにより、というファイルが生成されますdump_00002_20170224130408.pcap

その後、必要に応じて統計を取得します。

tshark -z io,stat,1,tcp.port==80,tcp.port==443 -r dump_00002_20170224130408.pcap

関連情報