我一直在测试 Ubuntu 16.04 到 18.04 的升级。我上周升级了,今晚我重新启动了 18.04。注意如何conky
显示差距vnstat
:
- “昨天”是空白的,但应该有 8.76 GB。
- “周”显示 7 GB,但今晚启动 18.04 时应为 32.33 GB + 2.52 GB。
- “月”显示 45.63 GB,但实际上约为 70 GB
原因是 16.04 和 18.04 有单独的数据库,当我克隆 16.04 以测试分区并升级到 18.04 时,这些数据库未同步:Bash script to clone Ubuntu to new partition for testing 18.04 LTS upgrade
如何让一个分区上的 Ubuntu 16.04 和另一个分区上的 Ubuntu 18.04 都更新同一个vnstat
数据库?我想将数据库存储在ntfs
已经设置为共享 Windows Subsystem for Linux (WSL) 数据和 Ubuntu 数据的第三个分区(文件系统)上。
奖励:假设我可以在 Windows 中收集每日 RX/TX/Total 统计信息,我如何将它们填充到vnstat
数据库中?
编辑 1:使用接受的答案 16.04 和 18.04 都在更新vnstat
ntfs 格式化分区中的 16.04 版本数据文件/mnt/e/var/lib/vnstat/
。我不得不回滚 Ubuntu 18.04vnstat
版本 1.18 并将其固定到 Ubuntu 16.04 版本 1.13 aka 1.14-1。
下一步将是让 Windows 10 WSL “查看”数据并以某种方式显示它。之后让WSL在启动时运行vnstatd
守护进程并收集/更新网络带宽统计信息。
vnStat 版本 1.3 - 1.18 使用相同的数据库结构,因此只要与这些版本共享数据库是可能的
与您的情况一样,双引导存在问题,假设网络接口名称匹配,这些限制应该不是问题。
数据库目录需要移动到两个环境都可以访问的位置。在配置文件
/etc/vnstat.conf
中,要查找的正确关键字是DatabaseDir
. 对于有问题的 ntfs,您可能还想禁用UseFileLocking
并CheckDiskSpace
避免意外。它也可能有助于禁用CreateDirs
和UpdateFileOwner
. 请注意,在启动 vnStat 守护程序之前,安装需要可用。配置文件的编辑需要重新启动或重新加载守护程序。在制作数据库目录的副本时,最好让守护程序停止。您还需要在更改后将配置文件更改同步到两个环境。
奖金
从理论上讲,这是可能的。我认为应该可以让该
vnstat
命令在适用于 Linux 的 Windows 子系统中运行。一旦可行,就可以使用该--exportdb
功能将数据库的内容转储到 ascii 文件,然后将收集的数据添加到现有数字(这可能并不完全简单),然后用于--importdb
导入更改并覆盖现有的数据库。可能更简单的替代方法是在两种环境中都使用 vnStat 2.0。这将导致拥有一个包含数据的 sqlite 数据库,并且我假设有 Windows 工具可用于操作现有数据。这个选项需要更少的步骤,但仍然需要处理 vnStat 在数据库中存储数据的方式。