流式传输日志文件内容(管道)

流式传输日志文件内容(管道)

我正在尝试了解管道的工作原理,但目前遇到了困难。

正在流式传输日志文件,并将其输出通过管道传输到 pigz。我想做的是将 pigz 内容重定向到 python 脚本作为 stdin。

我不知道如何将数据重定向到脚本

目前有效:

./customread file_name | pigz -dc

这会将日志内容显示到标准输出,我如何从这里将其传送到脚本?

我试过了

python script.py < `./customread file_name | pigz -dc`

我想在数据进入时重定向它..

答案1

我不太清楚你想要达到什么目的,但我认为你可以使用另一个嵌套管道。我在 bash 和 zsh 中做过类似的事情。使用 pigz 使用 -c 输出到 stdout,只需将其通过管道传输到寻找 stdin 的 python 脚本即可。

./customread file_name | pigz -dc | python script.py

你试过上面的方法吗?我尝试过;

tail -f /var/log/syslog | grep `hostname` | python test.py

以下是我使用的 Python这个帖子来自 Stackoverflow:

#!/usr/bin/python                                                   
import sys 
import os

while True:
    line = sys.stdin.readline()
    if not line:
        break
    sys.stdout.write(line) # or print, doesn't matter.

相关内容