it-swarm.cn

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

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

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

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

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

55
dv3500ea

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

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

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

38
ricky

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

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

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

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

特征

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

Installation

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

每月总计

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

[email protected]:~$ 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显示,如下所示:

enter image description here

注意拍照时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$9也是如此。

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

25
WinEunuuchs2Unix

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

6
gregmac

只是为了扩展rickys anwer:

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

enp0s31f
lo      
wlp3s0

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

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

给出一个很好的总结:

enter image description here

  • rx是收到的流量
  • tx是传输的流量
6
Martin Thoma

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

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

3
João Pinto

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

2
qbi

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

Download monitor

0
userAbhi