尽管阅读了手册页并搜索了 StackExchange 和更广泛的互联网,我还是没有找到一种方法来制作基于时间的、旋转的、有限的计数、tcpdump。
例如,我希望每小时有一个文件,不超过 24 小时。但我不希望 tcpdump 在 24 个文件后停止,我希望它删除最旧的文件并创建一个新文件。我希望它永远运行,但永远不会超过 24 个文件。
手册页似乎表明,如果您-C -W -G
一起使用,您可以实现这一目标,但我的测试并未显示此方法有效。
使用-G -W
和 astrftime
在 5 个文件后退出
# tcpdump -w foo.%F_%H%M%S -G 5 -W 5 -Z root port 22
tcpdump: listening on enp0s3, link-type EN10MB (Ethernet), capture size 65535 bytes
Maximum file limit reached: 5
Run Code Online (Sandbox Code Playgroud)
将所有三个一起使用似乎只是限制了每个时间范围生成的文件数量。例如,下面将在每个 5s 窗口中捕获多达 5 x 1MB 的文件。如果 5s 超过 5MB,则只保留最后的 5MB。但是,总文件数将永远增长。
# tcpdump -w foo.%F_%H%M%S -G 5 -C 1 -W 5 -Z root port 22
Run Code Online (Sandbox Code Playgroud)
这将捕获 …
tcpdump ×1