如何在重新启动后监控互联网数据的总使用情况?

一些宽带提供商强制实施每月下载限制,如果您过去,则需要额外收费。 仅通过安装/更新包和“正常”浏览(对我来说包括流媒体电视节目和电影)来超过一些下限也很容易。

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

系统监视器通过提供“资源”选项卡的网络部分中发送的总接收/总数来帮助解决这个问题。 但是,每次重启都会重置。 如果有一种方法可以获得每月总收入,那么你可以知道你有多接近超过你的限制,甚至可能会在你看起来超出限制时给出警告。

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

你可以看看vnstat 。 它基于命令行,可在存储库中使用。

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

要查看统计信息sudo vnstat -i [interface]

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

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

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

  • 特征
  • 安装
  • 组态
  • 启动Systemd服务
  • 用法(从命令行)
  • 坚定的例子

特征

  • 安装快速,简单,易于运行
  • 通过系统重启,收集的统计信息仍然存在
  • 可以同时监控多个接口
  • 几种输出选项
  • 摘要,每小时,每日,每月,每周,前10天
  • 可选的png图像输出(使用libgd)
  • 可以将月份配置为遵循结算周期
  • 轻,资源使用最少
  • 无论流量如何,相同的低CPU使用率
  • 可以在没有root权限的情况下使用
  • 在线颜色配置编辑器

安装

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

 sudo apt-get install vnstat 

安装后,请保持终端打开以用于以下部分。 无需重启。

组态

选择首选网络接口并相应地编辑/etc/vnstat.conf的Interface变量。 在列表中可以使用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是一种流行的轻量级系统监视器,用于许多Linux发行版。 您可以将带宽总数vnStat到您的conky显示,如下所示:

在此处输入图像描述

注意拍照时Yesterday是星期天,这解释了为什么每周总数减少了。

实现这一目标的最常见的代码是:

 ${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,1,1 substr ($10, 1, 1)$10和相同的$9

您可能必须将eth0更改为wlan0eth1等,具体取决于ifconfig报告的网络名称。

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

只是为了扩展rickys anwer:

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

 enp0s31f lo wlp3s0 

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

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

给出一个很好的总结:

在此处输入图像描述

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

我推荐可以从存储库获得的ntop实用程序,它作为服务运行并保留流量使用记录。 报告可从内部http服务器(端口3000)获得。 您可以使用浏览器轻松检查它们, http://localhost:300/

在ntop网站上查看你可以从ntop获得的内容 。

除了任何软件解决方案,我建议您查看您的提供商。 他们中的许多人都有监控工具,当您达到某个限制时会向您发出警告或暂时阻止您的访问。 这样做的好处是可以获得一些“官方”号码。

我发现“ 下载监视器 ”是一个非常好用且易于使用的工具来显示数据统计信息。 它具有GUI界面 ,使其易于使用。 它可以在Ubuntu软件中心获得。

下载监视器