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