如何解决达到特定大小后如何停止使用tcpdump写入捕获文件
我正在寻找一些解决方案以在捕获到指定大小后停止捕获tcpdump数据包。我正在使用以下命令来实现这一目标,但看起来tcpdump并未将所有捕获的数据包都写入指定的文件(myfile .pcap)。
sudo tcpdump -i en0 -C 10 -W 1 -z ./stop-tcpdump.sh -w myfile.pcap -K -n
cat stop-tcpdump.sh
#!/bin/sh
TCP_EXECUTABLE="tcpdump"
pid=$(pidof ${TCP_EXECUTABLE})
sudo kill -2 $pid
解决方法
tcpdump
的最简单解决方案可能只是将-W 1
增加到-W 2
。这将导致开始写入第二个捕获文件,但是10MB的第一个文件将保持完整而不是被截断,因为tcpdump
实例不一定会由于计时问题而被杀死。
或者,您可以切换为使用dumpcap
或tshark
,它们都支持显式的-a filesize:value
选项,因此不需要后旋转终止脚本。请注意,与tcpdump
的{{1}}选项不同,此选项期望以kB而不是MB为单位的值。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。