我正在用树莓派构建一个数据记录器。我在 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 启动时以不同的名称保存该文件。是否可以这样做。
答案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)在阿里巴巴/速卖通购买RTC时钟。它相当便宜且易于使用。
3) 使用 mktemp 为 shell 生成一个随机名称,该名称将在旋转文件后更改。