有些宽带提供商会设定每月下载限额,如果超出限额则需要额外付费。只需安装/更新软件包和“正常”浏览(对我来说包括流媒体电视节目和电影),就很容易超出某些较低的限额。
这意味着您需要限制使用互联网的时间,但很难知道何时限制。
系统监视器对此提供了一些帮助,它在资源选项卡的网络部分中提供了总接收量/总发送量。但是,每次重新启动时都会重置。如果有一种方法可以获取每月的总接收量,以便您知道距离超出限制还有多远,甚至在看起来您将要超出限制时发出警告,那就太好了。
有谁知道实现这一目标的方法吗?
答案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
。
您可能需要更改eth0
为wlan0
或eth1
等,具体取决于 报告的网络名称ifconfig
。
答案2
您可以查看状态监测。它基于命令行,可在存储库中使用。
你可以从sudo vnstat -u -i [interface]
查看统计数据sudo vnstat -i [interface]
答案3
答案4
除了软件解决方案之外,我建议你咨询一下你的提供商。他们中的许多人都有监控工具,当你达到一定限制时会向你发出警告或暂时阻止你的访问。这样做的好处是你可以得到一些“官方”数字。