거의 실시간으로 네트워크를 통해 증가하는 로그 파일을 복제합니다.

거의 실시간으로 네트워크를 통해 증가하는 로그 파일을 복제합니다.

실행되는 동안 로그 파일에 기록하는 여러 프로세스가 있는 서버가 있습니다. 거의 실시간으로 서버측 로그 파일의 복사본을 가져오려면 클라이언트 호스트를 활성화해야 합니다. 단순히 tail과 netcat을 결합하는 것보다 더 좋은 방법이 있습니까?

단일 연결을 통해 여러 로그 파일을 스트리밍하기 위해 서버 측에서 tail 및 netcat을 사용할 생각입니다.

tail -F *.log | nc -lk -p 31377

클라이언트는 로그를 다중화 해제하고 파일에 기록합니다.

nc serverhost 31377 | demultiplexer

demuxer가 sed를 중심으로 구축된 경우 tail에 삽입된 구분 기호를 통해 서버 측에서 대상 파일 이름을 계산합니다.

sed -e 's/==> \(.*\) <==/\1/'

답변1

노력하다

 tail -f /path/to/logfile.log | xargs -l logger -p local8.info
  • xargs -l한줄씩 읽어보겠습니다.
  • 그러나 브로드캐스팅을 위해서는 syslog.conf를 구성해야 합니다. ( local8info적절한 값으로 교체 )

관련 정보