在系统监视器中监视每个进程的网络使用情况

Kar*_*tik 5 networking 16.04

有很多答案展示了如何监控 Ubuntu 16.04 中的网络使用情况,甚至是使用该nethogs包的每个进程。然而,我对所有这些方法的抱怨是它们都是命令行,并且需要终端在我的系统上保持打开状态来进行监视。然后系统监视器中还有总网络使用情况,但这不是每个进程的。

有没有办法可以在系统监视器中附加另一列,该列将显示自上次重新启动以来每个进程使用的总(累积)数据?类似于内存或进程使用的CPU,但用于互联网数据。

Wil*_*llC 2

我不知道有任何 GUI 可以满足您的需求,但如果您运行命令行工具,这些可以帮助您避免保持终端窗口打开:

  • 您可以设置 crontab在操作系统启动时启动命令行工具。

  • 或者,您可以使用启动命令行工具nohup,然后关闭终端:
    nohup <command-line tool> 将命令行工具的进程与终端进程分开,停止其侦听中断,并更改输入和输出流,如此处和此处所述

  • 如果命令行工具没有重复功能——即它们执行一次然后返回

    • 您可以将 crontab 与每秒/每分钟的计划一起使用,而不是只运行一次——它“每 n 秒运行一次”
    • 您可以 while sleep <n-seconds>; do <command-line tool> ; done 无限地重复它们。请注意,一次执行结束与下一次执行开始之间会有 n 秒的间隙 --- 它是“在 n 秒延迟后运行” 而不是“每 n 秒运行一次”。

我目前正在学习 Matplotlib python 库,我有一种感觉,用几个小时和一些(线程?)python 来监视命令行工具记录到的任何文件的文件更改,您可以生成一个自更新绘图应用程序 - 取决于您有多少好奇心:)