同時にいくつかのリモート ファイルを追跡し、ファイルの統計情報を同時に集計することに興味があります。これまでのところ、次のようにしています。
mkfifo mfifo
ssh -ft host1 'tail -f /path/to/log | grep something' > mfifo &
ssh -ft host2 'tail -f /path/to/log | grep something' > mfifo &
ssh -ft host3 'tail -f /path/to/log | grep something' > mfifo &
cat mfifo | awk '{x += $4; print $3} END {printf "total: %d", x}'
これは、awk を介してストリーミングされた grep されたログの集約により、ほとんど期待どおりに機能します。ただし、最終的な合計を印刷する方法がわかりません。fifo のライターを閉じる必要があると思いますが、これを行う方法がわかりません。ストリーム全体をファイルとして保存せずにこれを行う方法に関する提案はありますか?