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

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

有些宽带提供商会设定每月下载限额,如果超出限额则需要额外付费。只需安装/更新软件包和“正常”浏览(对我来说包括流媒体电视节目和电影),就很容易超出某些较低的限额。

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

系统监视器对此提供了一些帮助,它在资源选项卡的网络部分中提供了总接收量/总发送量。但是,每次重新启动时都会重置。如果有一种方法可以获取每月的总接收量,以便您知道距离超出限制还有多远,甚至在看起来您将要超出限制时发出警告,那就太好了。

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

答案1

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

统计网是一款基于控制台的网络流量监控器,适用于 Linux 和 BSD,可记录所选接口的网络流量。它使用内核提供的网络接口统计信息作为信息源。这意味着 vnStat 实际上不会嗅探任何流量,同时还能确保系统资源的使用量很少。

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

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

特征

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

安装

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

sudo apt-get install vnstat

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

配置

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

vnstat --iflist

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

sudo vnstat -u -i eth0 

启动 Systemd 服务

引入接口并检查配置文件后,您可以通过以下方式启动监控过程systemd

sudo systemctl start vnstat.service

为了使此服务永久使用:

sudo systemctl enable vnstat.service

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

使用方法(从命令行)

查询网络流量:

vnstat -q

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

vnstat -l

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

vnstat --help

每月总计

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

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 |

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}

为了节省我的窄窗口的空间,我使用“G”代替“GiB”,使用“M”代替“MiB”等等。如果您有更多的屏幕空间,请将 更改substr ($10, 1, 1)$10,并将 也更改为$9

您可能需要更改eth0wlan0eth1等,具体取决于 报告的网络名称ifconfig

答案2

您可以查看状态监测。它基于命令行,可在存储库中使用。

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

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

答案3

只是为了扩大 Rickys 的回答:

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

enp0s31f
lo      
wlp3s0

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

vnstati -vs -i wlp3s0 -o ~/summary.png

给出了一个很好的总结:

在此处输入图片描述

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

答案4

除了软件解决方案之外,我建议你咨询一下你的提供商。他们中的许多人都有监控工具,当你达到一定限制时会向你发出警告或暂时阻止你的访问。这样做的好处是你可以得到一些“官方”数字。

相关内容