【发布时间】:2014-01-01 04:23:32
【问题描述】:
在我的办公室防火墙中,我使用如下命令:
$ sudo tcpdump -v -s 1500 -i eth0 port 25 | grep 'smtp: S'
监控 LAN 客户端发送邮件(我需要及早检测来自某些客户端的任何可能的垃圾邮件发送机器人,我们有非常宽松的安全策略,这里... :-()。
到目前为止,一切都很好:只要任何客户发送电子邮件,我都会有持续的输出。
但是,如果我添加一些过滤器以获得更清晰的输出,如下所示:
$ sudo tcpdump -v -s 1500 -i eth0 port 25 | grep 'smtp: S' | perl -pe 's/(.*?\)) (.*?)\.\d+ \>(.*)/$2/'
(这里我打算只获取源 IP/名称),直到 tcpdump 输出大于(bash?)缓冲区大小...(或者至少我想是这样...),我才会得到任何输出。
使用 'sed' 而不是 'perl' 没有任何改变...
获得过滤数据的连续输出的任何提示?
【问题讨论】: