2016-12-01 44 views
0

在Linux中,我想监视某个工具的输出,例如dbus-monitor的输出。我希望能够捕获它的输出的一些特殊关键字,然后使用关键字作为其他程序的输入参数。像下面那样,但它不好。我怎样才能实时捕捉一些连续的日志和grep文字?

dbus-monitor --system > d.log & 
var=`cat d.log | grep some-key-word` 
my_script.sh $var 

我希望能够实时监控输出流量,而不是从头开始记录整个日志。只是为了捕捉它的最新变化。例如。 dmesg提供了一个选项,dmesg -w,它符合我想要的。

-w, --follow    wait for new messages 

那么如何制作这样的脚本?捕捉最新的新产品并持续使用它。

回答

0

而不是cat,请使用tail -F <file> | grep <something>。该选项使尾部等待并输出所有传入数据。很可能,您还需要修改标准流的缓冲模式,其中stdbuf -oL(默认情况下,stdout是完全缓冲的,意思是每行之后将数据写入文件中的每几千字节和而不是)。

相关问题