使用 tcpflow 和 grep 的 HTTP 日志,重定向到文件不起作用(空文件)

使用 tcpflow 和 grep 的 HTTP 日志,重定向到文件不起作用(空文件)

我想记录一些带有关键字的特定 HTTP 请求,这些请求将到达特定端口。tcpflow工作正常,但我无法将过滤结果写入输出文件。

我不明白为什么这个命令可以完美地工作(“检测”是我正在寻找的关键字)并且仅显示我需要的行。

tcpflow -p -c -i eth0 port 80 | grep detect 

与此同时,同时,这根本不起作用。 log.txt 文件为空...

tcpflow -p -c -i eth0 port 80 | grep detect  > log.txt 

我想这与二进制输出有关?

因为这样它可以工作,但它会产生一个巨大的文件(我不需要那么多数据)

tcpflow -p -c -i eth0 port 80 > log.txt
grep log.txt --text detect

它仅适用于--text属性(没有说明有关二进制文件格式的内容),几天后文件可能会变得非常大。

答案1

感谢 Arkadiusz Drabczyk 的评论。它可以与这样的演示一起使用:

sudo tcpflow -i eth0 port 8080 -c | grep -A 50 "detect" --line-buffered  > /tmp/tcpflow.log

相关内容