ほぼリアルタイムでネットワークを介して増加するログファイルを複製します。

ほぼリアルタイムでネットワークを介して増加するログファイルを複製します。

実行中にログファイルに書き込む複数のプロセスを持つサーバーがあります。ほぼリアルタイムでサーバー側のログファイルのコピーを取得するには、クライアントホストを有効にする必要があります。単に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を設定する必要があります。 (local8およびinfo適切な値に交換)

関連情報