Debian
基於 tcpdump 的數據記錄器
我正在用樹莓派建構一個數據記錄器。我在 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
那裡放置一個初始值,以便按字母排序正確地排序您的日誌。
可能的解決方案:
- 有網際網路連接
執行 rc.local 時,您應該已經啟動了網路介面。最好安裝 ntpd 守護程序以跟上時間。
做一個
sudo install ntp
下次重新啟動時,它將在執行 tcpdump 之前進行。
2)在阿里巴巴/速賣通買一個RTC時鐘。它相當便宜且易於使用。
- 使用 mktemp 為 shell 生成一個隨機名稱,該名稱將在旋轉文件後更改。