这个问题可能听起来相当重复,但有一些微妙的细节使它有点不同。
我正在寻找一个简单的工具(用于Ubunut / Linux)来监控网络使用情况,以便通过1)单个进程提供网络使用的最小值,最大值,平均值和时间图。 2)系统;仅在进程运行期间。主要要求是我不是在寻找基于GUI的GUI(或基于GUI的终端GUI)工具,但我希望将这些监控信息推送到文件中,以便我可以对其进行一些后处理。
我遇到以下链接,其中列出了各种选项:http://www.binarytides.com/linux-commands-monitor-network/。但是,大多数工具都是基于GUI的,而且不提供上述信息。
非常感谢任何帮助。
答案 0 :(得分:2)
Wireshark可能会起作用,具体取决于您愿意放宽非GUI要求的程度以及定位目标流程是否简单。 Wireshark当然是一个GUI应用程序,但随附的tshark
命令是无头的,可用于将数据包捕获到文件中。捕获接口上的所有数据包后,您可以再次在pcap文件上运行tshark
以使用Wireshark“显示过滤器”过滤文件,并仅提取进程的数据包。这可能是也可能不简单,这取决于您是否可以从网络流量内容,端口或添加一些标记虚拟数据来识别您的流程。然后,您将拥有两个pcap文件,一个用于整个网络接口,另一个用于您的过程。
capinfos
命令将报告平均吞吐量。 Wireshark可用于通过菜单“Statistics>> IO Graph”生成具有毫秒(或其他)粒度的流量时间图。至于最小值和最大值,你可以从时间图中观察它,或者使用editcap
将pcap文件拆分成块,在每个块上运行capinfos
,并计算所有块的最小值和最大值
这可能不是最简单的方法,这正是我头脑中发生的事情。