我正在尝试使用Ubuntu中的tshark切片大型PCAP文件(3 GB)。 下面的代码是我想要做的:
tshark -r dia5_20Jan17.pcap -Y '((frame.time >= "2017-01-20 10:32:00") && (frame.time <= "2017-01-20 18:44:00"))' -w 1.pcap
问题是内存RAM的浪费:
代码使用95/95%的内存(8GB)。是否有更好的方法来切片PCAP文件?我也试过Python ......
答案 0 :(得分:3)
您可以使用editcap
分割捕获文件。例如:
editcap -A "2017-01-20 10:32:00" -B "2017-01-20 18:44:00" infile.pcap outfile.pcap
答案 1 :(得分:2)
tshark不是这项工作的最佳工具。我对libtrace(github link)有很好的使用经验,它为处理捕获文件提供了一个很好的工具箱。具体来说,就您而言,tracesplit工具。
请注意,他们的大多数示例都使用名为erf的捕获格式,而不是pcap。但是他们support pcap个文件,你只需要指定它。
等效的tracesplit命令类似于:
tracesplit --starttime=1484908320 --endtime=1484937840 -compress-type=none pcapfile:dia5_20Jan17.pcap pcapfile:1.pcap
答案 2 :(得分:2)
我现在还没有尝试过,但我的猜测是内存占用主要是由TCP解剖器跟踪连接等引起的。如果你创建一个配置文件,你禁用所有你不需要的解剖器(以及你只是对框架元信息进行过滤,可能所有)你可能会节省大量的内存。
我这样做的方式是
正如我所说,我还没有针对您的情况对此进行测试,但是在从pcaps刻录数据包时,我使用了减少的解剖设置。它速度更快,错误更少,并且可以节省RAM。