【问题标题】:Is possibile to rotate a tcpdump log?是否可以旋转 tcpdump 日志?
【发布时间】:2021-10-09 07:59:58
【问题描述】:

我有以下命令: sudo tcpdump -ni enp0s3 -W 1 -C 1 -w file.cap 使用此命令,我说:“在网络接口 enp0s3 上侦听并捕获最大大小必须为 1 mb 的文件中的所有数据包”。它可以工作,但问题是当文件达到 1mb 的大小时,它会被重置,并且从 0 kb 重新开始捕获,删除所有数据包。 我希望当文件为 1MB 时,只删除旧包并添加新包以替换它们。我不希望删除所有数据包并在 0kb 处重新开始采集。换句话说,我希望文件始终保持在 1mb 左右,并添加新的传入数据包来代替最旧的数据包。

【问题讨论】:

  • 这个答案不能解决我的问题,因为我想轮换同一个文件(只有一个 .pcap 文件)并丢弃最旧的数据包以添加新的传入数据包。
  • 那么为什么不logrotate
  • 我搜索了很多示例,但我发现的示例总是使用多个文件或从一开始就覆盖了同一个文件。
  • 这能回答你的问题吗? Write to another tcpdump file every minute

标签: linux file packet pcap tcpdump


【解决方案1】:

您可以将-U -W 2-C size 限制一起使用。然后它将在两个文件之间交替,您可以将它们连接起来(或处理旧文件)。

替代方案是写入流或管道,而不是写入文件。

【讨论】:

  • 谢谢,这可能是一个很好的解决方案。无论如何,有什么选择可以做我想做的事吗?我可以说“当你达到 1 mb 的维度时,只丢弃最旧的数据包以添加新的数据包”?显然在同一个文件上。我没有找到任何关于它的...
  • @WonderWhy 我认为这是不可能的。由于数据包的长度可变,因此您将无法在当前写入位置的末尾找到被覆盖的部分数据包的开始。而且,如果您想在开始时丢弃数据包,则必须重写整个文件。如果您想在单个文件中执行此操作,则需要提出自己的分段或重写方案(可以很容易地在管道中完成)
猜你喜欢
  • 2015-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-12
  • 1970-01-01
  • 2014-10-05
  • 2013-09-13
相关资源
最近更新 更多