2

这个问题可能听起来相当重复,但有一些微妙的细节使它有点不同。

我正在寻找一个简单的工具(用于 Ubunut/Linux)来监控网络使用情况,以便它通过 1)单个进程提供网络使用的最小值、最大值、平均值和时间图;以及,2) 系统;仅在进程运行期间。主要要求是我不是在寻找基于 GUI(或类似 top 的终端 GUI)的工具,但我希望将此监视信息推送到文件中,以便我可以对其执行一些后处理。

我遇到了以下链接,其中列出了各种选项: http: //www.binarytides.com/linux-commands-monitor-network/。但是,大多数工具都是基于 GUI 的,而没有提供上述信息的工具。

任何帮助将非常感激。

4

1 回答 1

2

Wireshark 可能会起作用,这取决于您愿意放宽非 GUI 要求的程度以及定位目标进程是否简单。Wireshark 当然是一个 GUI 应用程序,但tshark它附带的命令是无头的,可用于将数据包捕获到文件中。捕获接口上的所有数据包后,您可以tshark再次在 pcap 文件上运行以使用 Wireshark“显示过滤器”过滤文件并仅提取您的进程的数据包。这部分可能很简单,也可能不简单,这取决于您是否可以从网络流量内容、端口或通过添加一些哨兵虚拟数据来识别您的进程。然后,您将拥有两个 pcap 文件,一个用于整个网络接口,一个用于您的进程。

capinfos命令将报告平均吞吐量。Wireshark 可用于通过菜单“Statistics >> IO Graph”生成具有毫秒(或其他)粒度的流量时间图。至于最小值和最大值,您可以从时间图中观察或使用editcap将 pcap 文件拆分为块,capinfos在每个块上运行,并计算所有块的最小值和最大值。

这可能不是最简单的方法,这只是我脑海中浮现的想法。

于 2015-10-01T19:30:28.573 回答