Debian

基於 tcpdump 的數據記錄器

  • August 20, 2018

我正在用樹莓派建構一個數據記錄器。我在 rc.local 中使用了 Shell 腳本,我正在使用 tcpdump 擷取字節。我面臨的問題是,每次 pi 啟動時,日誌文件都會被替換。有沒有一種方法可以在每次 pi 啟動時以不同的名稱保存日誌文件。

我在 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

我已經嘗試附加數據,但我想在每次 pi 啟動時保存日誌文件。沒有 RTC,數據有點不可救藥。我想在每次 PI 啟動時以不同的名稱保存文件。有沒有可能做到這一點。

可以改為使用編號的日誌文件嗎?例如,您可以創建一個帶有日誌編號的文本文件和一個小腳本來lognum開始記錄:

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

這樣,您的日誌將被編號,並且下一個日誌的編號將儲存在lognum. 我建議在1000那裡放置一個初始值,以便按字母排序正確地排序您的日誌。

可能的解決方案:

  1. 有網際網路連接

執行 rc.local 時,您應該已經啟動了網路介面。最好安裝 ntpd 守護程序以跟上時間。

做一個

sudo install ntp

下次重新啟動時,它將在執行 tcpdump 之前進行。

2)在阿里巴巴/速賣通買一個RTC時鐘。它相當便宜且易於使用。

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

  1. 使用 mktemp 為 shell 生成一個隨機名稱,該名稱將在旋轉文件後更改。

引用自:https://unix.stackexchange.com/questions/243620