【问题标题】:How to stop writing to a capture file using tcpdump after it reaches a specific size如何在达到特定大小后停止使用 tcpdump 写入捕获文件
【发布时间】:2020-09-29 05:08:03
【问题描述】:

我正在寻找一些解决方案,以在捕获指定大小后停止捕获 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

【问题讨论】:

  • 如果您要限制文件大小,一些被丢弃的数据包的预期行为会使文件大小超过阈值。

标签: linux embedded-linux tcpdump


【解决方案1】:

tcpdump 最简单的解决方案可能就是将-W 1 增加到-W 2。这将导致开始写入第二个捕获文件,但第一个 10MB 的文件将保持完整而不是被截断,因为在此之前,tcpdump 实例不一定会因为时间问题而被杀死。

或者,您可以切换到使用dumpcaptshark,它们都支持显式-a filesize:value 选项,因此不需要旋转后终止脚本。请注意,与 tcpdump-C 选项不同,此选项需要以 kB 为单位的值,而不是 MB。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-28
    • 1970-01-01
    • 1970-01-01
    • 2013-01-14
    • 1970-01-01
    • 2017-11-21
    • 1970-01-01
    相关资源
    最近更新 更多