我想记录一些带有关键字的特定 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