2012-01-26 1 views
4

私はUNIXストリーム/tmp/syslog.socketに書き込むsyslogサーバを持っています。 このストリームを複数のTCPクライアントに複製する必要があります。 socatを使ってこれを達成する方法はありますか?複数のTCPクライアントへの重複した入力UNIXストリーム(socatを使用)

+0

しかし、syslogは通常 'udp'ですか? –

+0

はい。私の設定では、UDPを使って他のマシンからデータを受け取り、それらをUnixストリームソケットに書き込みます。 –

+0

@CalinDonは私の提案した回答が受け入れられるように働きますか? – lkraav

答えて

1

syslogdが、私はのsyslog-ngのは、また、TCPログredistrubution用のソケットと同様に、UDPをサポートしていることを信じているつまり

http://linux.about.com/od/commands/l/blcmdl8_syslogd.htm

、UDP経由でログを再配布するための施設があり、syslogdのmanページを参照してください

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 

forkptyが右側に重要であり、左側には重要です。

何を動作しませんでしたが、netcatをスタイルだった:

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

またon above websiteを文書化されている複数接続しているクライアントとの間の出力の交流の効果がありました。

+0

なぜ 'pty'が重要なのですか?私はそれを残して交替の問題が停止し、すべてのデータがすべてのクライアントに送信されます。 – Thor