tcpdump 多久保存一次到文件中

tcpdump 多久保存一次到文件中

我有一个关于 tcpdumd 的问题。它是否直接将数据保存在您可以使用 -w 指定的文件中,还是在停止时保存数据?因此,如果它是在 U 盘上写入,我可以卸载它吗?它只会将整个数据保存在 U 盘上。是否有一个选项可以拔掉它并仍然在其上写入数据。

答案1

它是否直接将数据保存在您可以使用 -w 指定的文件中,还是在停止时保存数据?

默认情况下,当它使用的“标准 I/O 库”缓冲区填满时,它将数据写入文件。这些缓冲区通常为 4K 或 8K 字节,因此每 4K 或 8K 字节,它将数据写入文件。当它停止时,它会写出尚未写出的所有内容。

在较新版本的 tcpdump(使用较新版本的 libpcap 构建)中,-U可以使用该标志;它告诉 tcpdump 在收到每个数据包时将其写出,即使缓冲区尚未满。

因此,如果它是在 U 盘上写入,我可以卸载它吗?它只会将整个数据保存在 U 盘上。

不,您应该先停止 tcpdump,然后然后如果您希望所有数据都在其中,请卸载 USB 记忆棒。

此外,除非您执行强制卸载,否则只要 tcpdump 正在写入 U 盘上的文件,系统可能会拒绝您卸载 U 盘。强制卸载会丢失 tcpdump 中的数据可能会丢失内核文件系统缓冲区内的数据。

是否有一个选项可以拔掉它并仍然在其上写入数据。

如果在 tcpdump 运行时拔下 USB 记忆棒,您将丢失 tcpdump 中的数据,并可能丢失内核文件系统缓冲区中的数据。

如果您使用 运行-U,那么您在 tcpdump 中丢失的唯一数据就是它位于中间当您卸载或拔出 USB 记忆棒时,您仍然会丢失内核文件系统缓冲区中尚未写入 USB 记忆棒的所有数据。

相关内容