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

참고: 이 질문은 이전에 게시되었습니다.그래서그러나 아무런 응답도 받지 못했습니다.

관련 정보