Linux 监视进程的网络使用情况

Linux 监视进程的网络使用情况,linux,ubuntu,process,network-monitoring,Linux,Ubuntu,Process,Network Monitoring,这个问题听起来可能相当重复,但有一些微妙的细节使它有点不同 我正在寻找一个简单的工具(适用于Ubunut/Linux)来监控网络使用情况,这样它可以通过1)单个进程给出网络使用的最小、最大、平均和时间图;二是制度;仅在进程运行期间。主要的需求是,我不是在寻找基于GUI(或类似top的终端GUI)的工具,而是希望将这些监控信息推送到一个文件中,这样我就可以对其执行一些后处理 我遇到以下链接,其中列出了各种选项:。然而,大多数工具都是基于GUI的,而非GUI的工具不提供上述信息 任何帮助都将不胜感激

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

我正在寻找一个简单的工具(适用于Ubunut/Linux)来监控网络使用情况,这样它可以通过1)单个进程给出网络使用的最小、最大、平均和时间图;二是制度;仅在进程运行期间。主要的需求是,我不是在寻找基于GUI(或类似top的终端GUI)的工具,而是希望将这些监控信息推送到一个文件中,这样我就可以对其执行一些后处理

我遇到以下链接,其中列出了各种选项:。然而,大多数工具都是基于GUI的,而非GUI的工具不提供上述信息


任何帮助都将不胜感激。

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

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


这可能不是最简单的方法,这只是我脑海中突然想到的。

你能澄清为什么非GUI是一种需求吗?只要日志是非GUI的,GUI应用程序(可选地在另一台机器上)在后处理中计算您要求的所有统计数据是否可以接受?我将使用脚本多次运行几个进程。每次脚本调用该进程时,我都不想坐在那里监视网络使用情况以报告监视数据。因此,我正在寻找可以推送到文件中的内容,以便以后对其进行后期处理。请注意,
dstat-nt
的输出可以推送到一个文件中,我可以从中计算最小值/最大值/平均值/等。但是,延迟是1秒,我正在寻找粒度为毫秒的内容。应该有一种简单的方法来做到这一点吗?如果我必须完成这个繁琐的过程,我会感到惊讶。如果您提供了一个关于tshark的小演示,比如
tshark
wget google.com
上的
。把重点转移到这个问题上。