网络捕获工具集,用于存储缓冲区并保存在触发器上



是否有一个简单的工具或实用程序可用于缓冲网络捕获,例如最后 3 分钟,如果事件可能是通过 GPIO 触发器或 UDP 消息发生的,我将最后 3 分钟和接下来的 1 分钟写入磁盘?我们的网络冻结发生在 40 分钟到 14 小时之间,我想在检测到的事件时间附近捕获网络流量,以更好地了解情况。我过去使用过tcpdump和wireshark,但总是手动触发捕获的开始和停止,我需要自动停止时间,并希望避免记录一堆不相关的数据。如果这很重要,我们的大多数开发环境都在使用 Ubuntu 18.04。

在这一点上,我们不限于任何语言或在需要时从头开始构建工具。

您可以尝试运行一个脚本来启动 2 个dumpcap实例,一个用于将所有流量捕获到持续时间有限的环形缓冲区和文件中,另一个实例仅用于等待有问题的捕获事件。 捕获事件发生后,dumpcap的第二个实例可能会终止,休眠 1 分钟,然后可以终止剩余的dumpcap个实例。 例如:

#!/bin/sh echo "正在启动捕获实例..." dumpcap -i eth0 -f "TBD Capture Filter" -b duration:180 -b files:2 -w file.pcapng & 回显"正在启动事件实例..." dumpcap -i eth0 -f "TBD 事件捕获过滤器" -c 1 回声"有事件;睡60秒..." 睡眠 60 echo "杀死所有垃圾桶实例..." 基拉尔垃圾盖 回应"完成"。

捕获完成后,您应该最多留下 2 个文件,其中包含最近 6 分钟(最多(的数据。 如果您愿意,您甚至可以在脚本中添加mergecap命令以将 2 个文件合并在一起:mergecap -F pcapng file.pcapng file_*.pcapng.

如果第二个dumpcap实例留下了它的临时捕获文件,您也可以根据需要对其进行清理,例如rm -f /tmp/wireshark*

最新更新