我有兴趣同时关注几个远程文件并同时聚合文件上的统计信息。到目前为止,我这样做如下:
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 流式传输的 grepped 日志。但是,我不确定如何打印最终总数。我认为我需要关闭 fifo 的作者,但我不知道该怎么做。关于如何在不将整个流存储为文件的情况下执行此操作的任何建议?