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
파일(클래식 syslog 설정 모방)사용: 작업별 키 쌍을 생성합니다 . 이 경우에는 제한적으로 보안을 보장할
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를 관리하기 위해 세마포어 사용). 그러면 데이터를 효과적으로 제어할 수 있습니다. 진실성.