通过tcpdump自动拆分pcap文件

时间:2015-12-11 16:28:38

标签: bash shell scripting sh tcpdump

我想执行一个tcpdump,它在一个2GB文件后生成一个新文件 据我在其他帖子中所知,它不可能生成大于2 GB的文件 这就是我目前正在关注的tcpdump:

tcpdump -C 100 -W 2048 -w /tmp/example.pcap

它应该每2GB创建一个新的pcap文件(example.pcap00, example.pcap01),但它不会。可能是因为我试图在外部磁盘上写它。所以我想在我写入tcpdump数据之前需要创建文件。
我该怎么做?
它应该创建具有2GB pcap数据的新文件,直到1TB HD已满。所以我不能真正使用-C选项,因为我不知道我需要提前多少 什么是解决我问题的最好方法?

1 个答案:

答案 0 :(得分:1)

  

我从另一篇文章中了解到,不可能生成大于2 GB的文件。

这取决于您运行的操作系统,无论您是在64位计算机上运行(对于某些操作系统;对于OS X和* BSD,它都无关紧要),libpcap tcpdump的版本正在使用,以及如何构建该版本的libpcap。

tcpdump -C 100 -W 2048 -w /tmp/example.pcap

这意味着“当文件大于1亿字节时,更改您正在写入的文件,并且文件不超过2048”。 (不,-W未指定最大文件大小。)

  

它应该每2GB创建一个新的pcap文件(example.pcap00example.pcap01),

不,每1亿字节。阅读精细的手册页。

  

但事实并非如此。可能是因为我试图在外部磁盘上写它。

为什么外部磁盘与此有关?

如果“它没有”,这是否意味着“它不会创建新文件,它只是继续写入旧文件”或“它报告错误并在写入第一个文件后退出”?如果是后者,您可能希望看到this question的答案。