2012-01-26 1 views
4

유닉스 스트림 /tmp/syslog.socket에 쓰는 syslog 서버가 있습니다. 이 스트림을 여러 TCP 클라이언트에 복제해야합니다. socat을 사용하여 이것을 달성 할 수있는 방법이 있습니까?다중 TCP 클라이언트에 대한 중복 입력 유닉스 스트림 (socat 사용)

+0

그러나 syslog는 일반적으로'udp'입니까? –

+0

예. 제 설정에서 UDP를 사용하는 다른 컴퓨터에서 데이터를 받아 유닉스 스트림 소켓에 씁니다. –

+0

@CalinDon에서 제안한 답변을 수락 하시겠습니까? – lkraav

답변

1

syslogd에서, 즉

http://linux.about.com/od/commands/l/blcmdl8_syslogd.htm I에서 syslog-ng에 또한 UDP

뿐만 아니라 로그 redistrubution에 대한 TCP 소켓을 지원하는 생각 syslogd를위한 매뉴얼 페이지를 참조하십시오 UDP를 통해 로그를 재분배를위한 시설이

http://www.syslog.org/syslog-ng/v2/

당신이 socat와 해킹을 필요로하지 않는다는 것을 추측 할

?

+0

내가 아는 한, syslog는 대상에 쓰고 대상에서 읽는 것만 가능합니다 (링크의 한쪽 끝 일 수 있음). 연결을 수신 대기 한 다음 해당 연결에 쓸 수 없습니다. –

2

난 그냥 Some Helpful socat Commands의 도움으로, 특히 중복 부분을 완성했다고 생각합니다.

socat TCP-LISTEN:4444,reuseaddr,fork SYSTEM:"tail -f ~/.tail-error-logs/*",pty 
fork

왼쪽에 중요 pty는 오른쪽에 중요하다.

tail -f ~/.tail-error-logs/* | socat STDIO TCP-LISTEN:4444,fork,reuseaddr 

는 또한 on above website을 설명하는 여러 연결된 클라이언트 사이의 출력 교류의 영향을 미쳤다 :

작동하지 않았다 무엇, netcat을 스타일이었다.

+0

왜'pty'가 중요한가요? 나가면 대체 문제가 중지되고 모든 데이터가 모든 클라이언트에 전송됩니다. – Thor