nc(netcat)のFIFOから読み込む

nc(netcat)のFIFOから読み込む

ログファイルがたくさんありますが、更新されたらこれを確認したいと思います。私は次のスクリプトを思いついた。

#!/bin/bash

# Check if at least one log file is provided
if [ "$#" -eq 0 ]; then
    echo "Usage: $0 /path/to/log/file1 [/path/to/log/file2 ...]"
    exit 1
fi

if -p pipe_log
then 
    echo "Deleting existing pipe"
    rm pipe_log
    echo "Done!"
fi

mkfifo pipe_log

echo "Setting up log publishing"
# Start tail on each log file and pipe to nc in the background
for log_file in "$@"; do
    (tail -n 0 -F "$log_file"  >> pipe_log) &
done
echo "Done!"

echo "Starting server"
(nc -lk -p 12345 -s 0.0.0.0 < pipe_log ) 
echo "Finished"


# Wait for all background processes to finish
wait

rm pipe_log

tail各ファイルのログを名前付きパイプに記録してログをマージしました。次に、Publish Comprehensive Logを使用しますnc -lk < pipe_log。ただし、ログを読み取ろうとするとnc localhost 12345出力はありません。

FIFOから直接読み取れるため、確認できないパイプからリダイレクトするのにcat pip_log問題があるようです。nc

注:この質問は以前に投稿されました。だからしかし、何の答えも受けませんでした。

関連情報