我在 Ubuntu 14.04 服务器上安装了 vnstat 来跟踪我的互联网使用情况(我的每月传输量有限)。但是,数据库从未更新。我尝试过卸载/重新安装,但不起作用。我需要做什么才能让 vnstat 更新并准确?
答案1
跑步
sudo chown -R vnstat:vnstat /var/lib/vnstat
这解决了我在 Ubuntu 14.04 上的问题。
确保该文件夹中有以下文件并拥有适当的所有权。
boby@fwhlin:/var/lib/vnstat$ ls -la
total 16
drwxr-xrwx 2 vnstat vnstat 4096 May 16 01:50 .
drwxr-xr-x 78 root root 4096 Jul 22 15:14 ..
-rw-r--rwx 1 vnstat vnstat 2792 Jul 26 00:26 eth0
-rw-rw-r-- 1 vnstat vnstat 2792 Jul 26 00:26 .eth0
boby@fwhlin:/var/lib/vnstat$
.eth0 是临时文件,有时可能会消失。
答案2
安装后 vnstat
需要创建数据库(一次)。要创建数据库,您可以使用更新开关,该开关在没有数据库的情况下创建新数据库。创建数据库:sudo vnstat -i eth0 -u
其中 eth0 是网络接口的名称。如果您不确定是否要更新所有接口,请使用sudo vnstat -u
。一段时间后(1 分钟),您可以查看详细信息vnstat -i eth0
或简单地vnstat
。
更新
好像vnstat
没有运行!。通过运行启动守护进程sudo /etc/init.d/vnstat start
并在 5 分钟后检查结果。
例子
sudo vnstat -u -i eth0
错误:无法读取数据库“/var/lib/vnstat/eth0。信息:-> 已创建新数据库。
sudo /etc/init.d/vnstat start
- 启动 vnStat 守护进程 vnstatd [确定]
一旦数据库初始化完毕,就可以监控带宽使用情况了。您可以通过调用命令查看报告vnstat
。
答案3
这里也有同样的问题。
检查完详细信息后发现,不同设备(eth0, ppp0, wlan0
等)的数据库已创建,/var/lib/vnstat
但这些文件归用户所有。之后
sudo chown -R vnstat:vnstat /var/lib/vnstat
似乎没问题。我还必须检查默认界面/etc/vnstat.conf
- 它对我来说是错误的,所以我只是更改了它。
答案4
抱歉,由于我的编辑被拒绝了,我不得不将其作为自己的答案,而不是编辑 Boby 的答案:|
默认情况下,当您安装 vnstat 时,它会自动启动 vnstatd 守护进程,该守护进程每 30 秒收集一次指标并每 5 分钟“更新”一次(针对所有本地设备)。因此,从本质上讲,安装 vnstat 数据包后,您应该在 5 分钟后开始查看指标。
不过,有时安装包似乎存在问题。它有时似乎以某种方式创建 /var/lib/vnstat 目录,使得用户 vnstat 无法写入,因此 vnstat 程序只有在以 root 身份运行时才有效(守护进程以用户 vnstat 身份运行)。
你可以通过运行以下命令来检查这是否是你的问题:
ll /var/lib | grep vnstat
drwxr-xr-x 2 root root 4096 Oct 25 2014 vnstat
如果它由 root 拥有(如本例中所示),那么这可能是您的问题。您还可以在 /var/log/syslog 文件中查找原因,它可能会有如下行:
Jul 27 22:06:19 xxx vnstatd[13276]: Error: Unable to open database "/var/lib/vnstat/eth0" for writing: Permission denied
跑步
sudo chown -R vnstat:vnstat /var/lib/vnstat
这解决了我在 Ubuntu 15.10 上的问题。
确保该文件夹中包含以下文件且具有适当的所有权,完成后应如下所示:
/var/lib/vnstat$ ls -la
total 16
drwxr-xrwx 2 vnstat vnstat 4096 May 16 01:50 .
drwxr-xr-x 78 root root 4096 Jul 22 15:14 ..
-rw-r--rwx 1 vnstat vnstat 2792 Jul 26 00:26 eth0
-rw-rw-r-- 1 vnstat vnstat 2792 Jul 26 00:26 .eth0
如果vnstat 守护进程在首次启动尝试失败后死亡,您可能需要通过重新启动它sudo /etc/init.d/vnstat restart
。修复后 5 分钟内,您应该可以开始获取所有设备的数据。