如何在Linux中将tcpdump捕获到压缩文件中

3

我有一个DNS服务器,想要捕获DNS流量,以获取所有使用我的DNS服务器的IP地址。

为此,我开始使用以下tcpdump命令并将其捕获到文件中:

tcpdump -n -i eth0 dst port 53 >> dns_data.log

但是如果我长时间运行这个程序,文档的大小会很大。如何将其捕捉到压缩文件中?我尝试了以下命令但它没有起作用。
tcpdump -n -i eth0 dst port 53 | bzip2 -c >> dns_data.bz2

猜测bzip不知道流何时关闭,因此它会一直等待更多的数据。查询man tcpdump以查看是否有一个选项“运行 X 分钟、秒或字节”。祝好运。 - shellter
为什么不使用查询日志? - Roland Rusch
1个回答

5
尝试以下命令:tcpdump -G 3600 -w 'trace_%Y-%m-%d_%H:%M:%S.pcap' -z gzip -G N 表示每N(3600)秒轮换。 -z 命令 表示在轮换后运行命令(gzip)。

也许你的意思是 ...-w "$(date +trace_%Y-%m-%d_%H:%M:%S.pcap)" -z ...?祝你好运。 - shellter
1
在新版本的tcpdump中,@shellter使用-G选项会导致每次文件轮换时将-w选项传递给strftime - Alnitak
@Alnitak:谢谢!好知道。 - shellter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接