【发布时间】:2017-06-28 17:28:42
【问题描述】:
(可能是“tcpflow”问题)
我写了一个脚本来监控http流量,我安装tcpflow,然后grep
它工作(你应该发出一个http请求,例如curl www.163.com)
sudo tcpflow -p -c -i eth0 port 80 2>/dev/null | grep '^Host: '
这样输出(连续)
Host: config.getsync.com
Host: i.stack.imgur.com
Host: www.gravatar.com
Host: www.gravatar.com
但我不能继续使用管道
不起作用(无输出)
sudo tcpflow -p -c -i eth0 port 80 2>/dev/null | grep '^Host: ' | cut -b 7-
不起作用(无输出)
sudo tcpflow -p -c -i eth0 port 80 2>/dev/null | grep '^Host: ' | grep H
当我用cat foo.txt 替换sudo tcpflow 时,它可以工作:
cat foo.txt | grep '^Host: ' | grep H
那么管道、grep 或 tcpflow 有什么问题?
更新:
这是我的最终脚本:https://github.com/zhengkai/config/blob/master/script/monitor_outgoing_http.sh
【问题讨论】:
-
sudo tcpflow -p -c -i eth0 port 80 2>/dev/null | grep '^Host: '的输出是什么? -
@Inian 现在我添加它有问题
-
它是如何失败的?没有输出?
-
@ZhengKai:是不是不断增加的数据流?
-
@linuxfan 不适用于 ToT
标签: linux bash grep pipe stdout