volts.json
我的计算机 1每秒将电压数据记录到文件中。
我的第二台计算机通过连接ssh
并每 5 分钟抓取该文件。 Splunk 为仪表板文件编制索引。
scp
这种方式是有效的,如果是的话就可以了。接下来是如何管理文件并使其保持较小而不增加到 2mb?是否有命令可以滚动较早的日志并保留最新的日志?
json 现在看起来像这样:
{
"measuredatetime": "2022-06-27T18:00:10.915668",
"voltage": 207.5,
"current_A": 0.0,
"power_W": 0.0,
"energy_Wh": 2,
"frequency_Hz": 60.0,
"power_factor": 0.0,
"alarm": 0
}
{
"measuredatetime": "2022-06-27T18:00:11.991936",
"voltage": 207.5,
"current_A": 0.0,
"power_W": 0.0,
"energy_Wh": 2,
"frequency_Hz": 59.9,
"power_factor": 0.0,
"alarm": 0
}
答案1
- 为了保持目录同步
ssh
,典型的工具是rsync
. - 滚动日志文件并节省空间,
logrotate
非常专用。 ssh
通过强制命令来完成无人值守的简单任务.ssh/authorized_keys
是一种很好的做法。
例子:
设置
/etc/logrotate.d/volts
文件(模仿经典的系统日志设置)使用 ; 创建任务专用密钥对
ssh-keygen
;在这种特殊情况下,您不需要密码;通过autorized_keys
限制确保安全中
.ssh/authorized_keys
,设置:command="rsync --server --sender -logDtpre.iLsf . /path/to/volts/" ssh-rsa AAAAB3NzaC1yc2E[...pubkey...] blabla
在另一边,在
crontab
,集合rsync -e "ssh -i /path/to/privatekey" -a otherhost:/path/to/volts/ /path/to/volts
在计算机1上,您还可以用命名管道替换日志文件,制作一个守护进程脚本来消耗流并安全地写入文件(例如使用信号量来管理并发I/O),以便您有一个良好的控制超过数据完整性。