
끝에 csv 요약 줄을 출력하는 수백 대의 Linux 시스템에서 실행되는 쉘 스크립트가 있습니다. 결과 요약을 검토하려면 이를 하나의 파일로 수집해야 합니다. 해당 csv 라인을 네트워크를 통해 하나의 단일 시스템으로 전송하여 모두 단일 파일로 파이프하는 방법이 있습니까?
>>를 추가하여 모든 입력을 파일에 인쇄한 다음 스크립트가 컬 명령을 실행하여 해당 서버에 게시하는 간단한 http 서버와 같은 것일 수 있습니까?
답변1
수백 개의 시스템이 애플리케이션의 출력을 다시 단일 시스템으로 전달하도록 하는 간단한 솔루션은 를 사용하는 것입니다 netcat
.
중앙 서버 중 하나는 netcat
입력을 받기 위해 무한 루프에 넣습니다.
while true; do nc -l 4444; done | tee foo.csv
그런 다음 각 애플리케이션 호스트에서 다음을 실행합니다.
app.exe | nc foo.example.com 4444
그다지 강력하지는 않지만 작업을 완료할 수 있습니다.
보다 안정적인 솔루션을 위해 rsyslog
중앙 서버에 설정하세요. 그런 다음 각 앱 호스트에서 logger --server foo.example.com "your message here"
. 게시된 메시지는 추가 처리를 위해 logger
의 파일에 기록됩니다 . rsyslog
설정하기가 더 어려울 수도 있지만 장기적으로는 더 쉬울 수도 있습니다.