您如何监控重新启动后的互联网数据使用总量?

dv3*_*0ea 78 networking bandwidth system-monitor

一些宽带提供商规定了每月下载限制,如果你超过了,会收取额外费用。仅仅通过安装/更新软件包和“正常”浏览(对我来说包括流媒体电视节目和电影),也很容易超过一些下限。

这意味着您需要限制使用互联网的数量,但很难知道何时使用。

系统监视器通过在资源选项卡的网络部分提供接收/发送总数来对此有所帮助。但是,每次重新启动都会重置。如果有一种方法可以让您每月收到总数,这样您就可以知道自己离超出限制有多近,甚至可能会在您看起来要超出限制时收到警告。

有谁知道实现这一目标的方法?

Win*_*nix 59

vnStat - 基于轻量级控制台的网络监视器

vnStat是一个基于控制台的 Linux 和 BSD 网络流量监视器,它为所选接口保留网络流量日志。它使用内核提供的网络接口统计信息作为信息源。这意味着 vnStat 实际上不会嗅探任何流量,并确保系统资源的少量使用。

在本教程中,我们将回顾:

  • 特征
  • 安装
  • 配置
  • 启动 Systemd 服务
  • 用法(来自命令行)
  • Conky 示例

特征

  • 安装和运行快速简单
  • 收集的统计信息在系统重启后仍然存在
  • 可以同时监控多个接口
  • 几个输出选项
  • 摘要、每小时、每天、每月、每周、前 10 天
  • 可选的 png 图像输出(使用 libgd)
  • 月份可以配置为遵循计费周期
  • 轻量级,最少的资源使用
  • 无论流量如何,CPU 使用率都一样低
  • 无需root权限即可使用
  • 在线颜色配置编辑器

安装

nvStat 位于官方存储库中,因此无需链接到新的 ppa。要安装使用创建终端实例Ctrl+ Alt+T和在提示符下键入:

sudo apt-get install vnstat
Run Code Online (Sandbox Code Playgroud)

安装后,请保持终端打开以进行以下部分。无需重新启动。

配置

选择一个首选的网络接口并相应地编辑 Interface 变量 /etc/vnstat.conf。要列出 vnstat 可用的所有接口,请使用:

vnstat --iflist
Run Code Online (Sandbox Code Playgroud)

要开始监视特定接口,您必须先初始化数据库。每个接口都需要自己的数据库。为 eth0 接口初始化一个的命令是:

sudo vnstat -u -i eth0 
Run Code Online (Sandbox Code Playgroud)

启动 Systemd 服务

介绍接口并检查配置文件后。您可以通过systemd以下方式启动监控过程:

sudo systemctl start vnstat.service
Run Code Online (Sandbox Code Playgroud)

要永久使用此服务:

sudo systemctl enable vnstat.service
Run Code Online (Sandbox Code Playgroud)

从现在开始,vnstat将使用如此小的 CPU 百分比在后台收集网络使用情况,它不会显示在 conky(系统监视器)的前 9 个进程列表(在我的机器上)中。

用法(来自命令行)

查询网络流量:

vnstat -q
Run Code Online (Sandbox Code Playgroud)

查看实时网络流量使用情况:

vnstat -l
Run Code Online (Sandbox Code Playgroud)

要查找更多选项,请使用:

vnstat --help
Run Code Online (Sandbox Code Playgroud)

每月总计

要查看每月总计,请使用:

rick@dell:~$ vnstat -m

 eth0  /  monthly

       month        rx      |     tx      |    total    |   avg. rate
    ------------------------+-------------+-------------+---------------
      Nov '16     76.31 MiB |    2.03 MiB |   78.35 MiB |   10.45 kbit/s
    ------------------------+-------------+-------------+---------------
    estimated      3.13 GiB |      84 MiB |    3.21 GiB |
Run Code Online (Sandbox Code Playgroud)

Conky 示例

Conky 是一种流行的轻量级系统监视器,用于许多 Linux 发行版。您可以像这样将 vnStat 带宽总数添加到您的 conky 显示中:

在此处输入图片说明

请注意拍摄照片的时间Yesterday是星期日,这解释了为什么每周总数较少。

实现这一目标的 conky 代码是:

${color orange}${voffset 2}${hr 1}
${color1}Network using vnStat "-i", "-w" and "-m"
${color}${goto 5}Today ${goto 100}Yesterday ${goto 225}Week ${goto 325}Month ${color green}
${execi 300 vnstat -i eth0 | grep "today" | awk '{print $8" "substr ($9, 1, 1)}'} ${goto 110}${execi 300 vnstat -i eth0 | grep "yesterday" | awk '{print $8" "substr ($9, 1, 1)}'} ${goto 220}${execi 300 vnstat -i eth0 -w | grep "current week" | awk '{print $9" "substr ($10, 1, 1)}'} ${goto 315}${execi 300 vnstat -i eth0 -m | grep "`date +"%b '%y"`" | awk '{print $9" "substr ($10, 1, 1)}'}
${color orange}${voffset 2}${hr 1}
Run Code Online (Sandbox Code Playgroud)

为了节省我狭窄的窗户上的空间,我用“G”,而不是“吉布”,“M”,而不是“MIB”等,如果您有更多的屏幕房地产的变化substr ($10, 1, 1),以$10与同为$9

根据 报告的网络名称,您可能需要更改eth0wlan0eth1ifconfig

  • 在 Ubuntu 20.04 中找到的 vnstat 2.6 不再有 u 选项。所以使用较新版本的人可以跳过配置部分,直接进入systemd服务部分。 (3认同)
  • @KasunSiyambalapitiya 否,因为“vnstat”详细信息是在网卡运行时实时收集的。不过,您的 ISP(互联网服务提供商)可以告诉您本月迄今为止的带宽。 (2认同)

ric*_*cky 45

您可以查看vnstat。它是基于命令行的,可在存储库中使用。

你可以用 sudo vnstat -u -i [interface]

查看统计数据 sudo vnstat -i [interface]

  • `错误:此版本不支持“-u”参数。`??! (5认同)

Mar*_*oma 13

只是为了扩展rickys anwer:

有了ifconfig | cut -c 1-8 | sort | uniq -u你可以列出接口:

enp0s31f
lo      
wlp3s0
Run Code Online (Sandbox Code Playgroud)

对于一个界面,您可以像这样可视化流量:

vnstati -vs -i wlp3s0 -o ~/summary.png
Run Code Online (Sandbox Code Playgroud)

给出了一个很好的总结:

在此处输入图片说明

  • rx 是接收到的流量
  • tx 是转移的流量

  • 只需确保除了 vnstat 之外还安装了 vnstati。`sudo apt install vnstat vnstati` (3认同)

gre*_*mac 6

虽然不是“ubuntu”答案,但我为此使用了WRT54G 路由器上的Tomato 固件。在过去的几年里,它给了我每月的上/下使用量,好东西(在你的问题的上下文中)是它适用于整个网络,而不仅仅是它正在运行的一个系统(尽管这一点没有实际意义如果有问题的系统是您的路由器或直接连接)。

  • 好吃的西红柿。非常适合三明治,甚至更适合路由器。 (3认同)