Files
如何優化兩個系統之間的文件傳輸並修剪文件
我有電腦 1
volts.json
每秒將電壓數據記錄到一個文件中。我的第二台電腦通過連接
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 }
- 要保持目錄同步
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),這樣您就可以很好地控制超過數據完整性。