tcpdumpベースのデータロガー

tcpdumpベースのデータロガー

私はRaspberry Piを使用してデータロガーを作成しています。私はrc.localでシェルスクリプトを使用しており、tcpdumpを使用してバイトをキャプチャしています。私が直面している問題は、パイが起動するたびにログファイルが置き換えられることです。パイが起動するたびにログファイルを別の名前で保存する方法はありますか?

rc.localの初期コード

tcpdump udp -c 600 -w new-$(date +%F-%H-%M-%S).pcap  //this writes all the 600 UDP Frames of Ethernet to the file new(time displayed in PI).pcap

データを追加しようとしましたが、Pyが起動するたびにログファイルを保存したいと思います。 RTCがないため、データの変更は少し難しいです。 PIが起動するたびに、このファイルを別の名前で保存したいと思います。これは可能ですか?

答え1

番号付きのログファイルを代わりに使用できますか?ログ番号を含むテキストファイルlognumとロギングを開始する小さなスクリプトを作成できます。

#!/bin/bash
lognum=$(cat lognum)
tcpdump udp -c 600 -w log-$lognum.pcap
echo $(( $lognum + 1 )) > lognum

これにより、ログに番号が付けられ、次のログ番号がに保存されます。アルファベット順にログが正しくソートされるように、この値を初期値のままにすることをおlognum勧めします。1000

答え2

考えられる解決策:

1) インターネットに接続している必要があります。

rc.localが実行されている場合は、ネットワークインタフェースを起動する必要があります。時間を追うためには、ntpdデーモンをインストールするのが最善です。

何かを作る

sudo install ntp

次回の再起動時にtcpdumpを実行する前の時間に時間を設定します。

2) Alibaba/AliExpressでRTC時計を購入します。かなり安くて使いやすいです。

http://www.aliexpress.com/item/DIY-DS3231-Precision-RTC-Clock-Memory-Module-for-Arduino-Raspberry-Pi/32436430982.html

3) mktemp を使用して、ファイルの回転後に変更されるシェルのランダムな名前を生成します。

関連情報