树莓派 vnstat 使用与流量使用情况不更新问题解决

树莓派 vnstat 使用与流量使用情况不更新问题解决

树莓派 vnstat 使用与流量使用情况不更新问题解决

使用 vnstat 可以查看统计树莓派每月的流量使用情况,也可以按天,按小时查看

安装

apt-get install vnstat

安装完成后,默认就已经启动了

监听网卡

先执行 ifconfig 查看网卡名称

pi@raspberrypi:~ $ ifconfig
eth0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether b8:27:eb:2d:6b:f8  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 1017611  bytes 2402900915 (2.2 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1017611  bytes 2402900915 (2.2 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.232.64  netmask 255.255.255.0  broadcast 192.168.232.255
        inet6 fe80::8c0d:97f8:45a0:ba3c  prefixlen 64  scopeid 0x20<link>
        ether b8:27:eb:78:3e:ad  txqueuelen 1000  (Ethernet)
        RX packets 1547168  bytes 1190326011 (1.1 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1838453  bytes 1454215554 (1.3 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

如果使用的网线插入,监听的应该是 eth0

执行

vnstat -u -i eth0

如果使用 wifi 连接网络,监听应该是 wlan0

执行

vnstat -u -i wlan0

执行命令需要在 root 用户下执行,因为执行的时候,会在 /var/lib/vnstat/ 目录创建文件
如果在 pi 默认用户下执行,会提示权限问题

pi@raspberrypi:~ $ vnstat -u -i eth0
Error: Unable to read database "/var/lib/vnstat/eth0": 没有那个文件或目录
Error: Unable to open database "/var/lib/vnstat/eth0" for writing: 权限不够
pi@raspberrypi:~ $

使用

执行 vnstat --help 查看所有命令
下面是一些常用命令

vnstat -h    #按小时查询
vnstat -d    #按天数查询
vnstat -m    #按月数查询
vnstat -w    #按周数查询
vnstat -t    #查询TOP10

也可以根据网卡查看小时数

例如查看有线网卡的一小时流量

vnstat -h -i eth0

查看 wifi 无线网络一小时流量

vnstat -h -i wlan0

vnstatd[10786]: Error: Unable to create database backup 错误解决

安装 vnstat 成功后,每次查看流量,一直保持一个固定值,通过命令 systemctl status vnstat 查看,发现有错误日志

10月 21 15:39:42 raspberrypi vnstatd[10786]: Info: Monitoring: eth0 (10 Mbit) wlan0 (1000 Mbit)
10月 21 15:44:42 raspberrypi vnstatd[10786]: Info: Database for interface "eth0" no longer exists.
10月 21 15:44:42 raspberrypi vnstatd[10786]: Info: Removing interface "eth0" from update list.
10月 21 15:44:42 raspberrypi vnstatd[10786]: Info: Monitoring: wlan0 (1000 Mbit)
10月 21 15:44:42 raspberrypi vnstatd[10786]: Error: Unable to create database backup "/var/lib/vnstat/.wlan0".
10月 21 15:44:42 raspberrypi vnstatd[10786]: Error: Unable to write database, continuing with cached data.
10月 21 15:49:42 raspberrypi vnstatd[10786]: Error: Unable to create database backup "/var/lib/vnstat/.wlan0".
10月 21 15:54:42 raspberrypi vnstatd[10786]: Error: Unable to create database backup "/var/lib/vnstat/.wlan0".
10月 21 15:59:42 raspberrypi vnstatd[10786]: Error: Unable to create database backup "/var/lib/vnstat/.wlan0".
10月 21 16:04:42 raspberrypi vnstatd[10786]: Error: Unable to create database backup "/var/lib/vnstat/.wlan0".

查看该文件所属用户

ls /var/lib/vnstat/.wlan0 -l

发现该文件归属于 root 用户

这是由于执行 vnstat -u -i wlan0 是在 root 用户下执行的,所以 .wlan0 文件的归属用户是 root

需要执行命令修改文件所属用户和用户组,将其设置成 vnstat

sudo chown -R vnstat:vnstat /var/lib/vnstat/.wlan0

现在所属用户就是 vnstat

pi@raspberrypi:~ $ ls /var/lib/vnstat/.wlan0 -l
-rw-r--r-- 1 vnstat vnstat 2784 10月 21 16:39 /var/lib/vnstat/.wlan0

如果你监听的是其它网卡,比如 eth0 ,那么应该是 /var/lib/vnstat/.eth0 文件
具体文件需要执行 systemctl status vnstat 通过错误日志来查看

Copyright: 采用 知识共享署名4.0 国际许可协议进行许可

Links: https://zwc365.com/2019/10/21/树莓派-vnstat-使用与流量使用情况不更新问题解决

Buy me a cup of coffee ☕.