Несколько версий Ubuntu, обновляющих одну и ту же базу данных vnstat
Я тестировал Ubuntu 16.04 до 18.04. Я обновился на прошлой неделе и сегодня вечером перезагрузил 18.04. Обратите внимание, как conky
показывает пробелы для vnstat
:
- "Вчера" пусто, но должно быть 8,76 ГБ.
- "Неделя" показывает 7 ГБ, но для загрузки 18.04 сегодня должно быть 32,33 ГБ + 2,52 ГБ.
- "Месяц" показывает 45,63 ГБ, но на самом деле это около 70 ГБ
Причина в том, что 16.04 и 18.04 имеют отдельные базы данных, которые не синхронизируются, когда я клонирую 16.04 для тестирования раздела и обновления до 18.04: скрипт Bash для клонирования Ubuntu в новый раздел для тестирования обновления 18.04 LTS
Как я могу установить Ubuntu 16.04 на одном разделе и Ubuntu 18.04 на другом разделе, которые обновляются одинаково? vnstat
база данных? Я хотел бы хранить базу данных на третьем разделе (ntfs
Файловая система) уже настроена для совместного использования данных подсистемы Windows для Linux (WSL) и данных Ubuntu.
Бонус: при условии, что я могу собирать статистику Daily RX/TX/Total в Windows, как я могу заполнить их в vnstat
база данных?
РЕДАКТИРОВАТЬ 1: Используя принятый ответ 16.04 и 18.04 оба обновления vnstat
Файлы данных версии 16.04 в формате ntfs /mnt/e/var/lib/vnstat/
, Пришлось откатить Ubuntu 18.04 vnstat
версии 1.18 и прикрепите его к Ubuntu 16.04 версии 1.13 или 1.14-1.
Следующим шагом будет заставить Windows 10 WSL "увидеть" данные и как-то их отобразить. После этого запустите WSL vnstatd
демон при загрузке и сбор / обновление статистики пропускной способности сети.
1 ответ
Версии vnStat 1.3 - 1.18 используют ту же структуру базы данных, поэтому совместное использование базы данных с этими версиями возможно при условии, что
- обе установки имеют одинаковые имена сетевых интерфейсов
- происходит перезагрузка при переключении между средами
- процессы-демоны не обращаются к файлам базы данных одновременно
- совпадение владельцев файлов базы данных
Поскольку в вашем случае речь идет о двойной загрузке, эти ограничения не должны быть проблемой, если предположить, что имена сетевых интерфейсов совпадают.
Каталог базы данных необходимо переместить в место, доступное для обеих сред. В конфигурационном файле /etc/vnstat.conf
правильное ключевое слово для поиска DatabaseDir
, С ntfs вы также можете отключить UseFileLocking
а также CheckDiskSpace
чтобы избежать сюрпризов. Скорее всего, это также поможет отключить CreateDirs
а также UpdateFileOwner
, Обратите внимание, что монтирование должно быть доступно до запуска демона vnStat.
Редактирование файла конфигурации требует перезапуска или перезагрузки демона. Также лучше держать демон остановленным при создании копии каталога базы данных. Вам также нужно будет синхронизировать изменения файла конфигурации в обеих средах после их изменения.
бонус
Теоретически это могло быть возможно. Я бы предположил, что можно получить vnstat
Команда работает в подсистеме Windows для Linux. Как только это сработает, можно использовать --exportdb
функциональность для выгрузки содержимого базы данных в файл ascii, затем добавления собранных данных к существующим номерам (что может быть не совсем простым), а затем использование --importdb
импортировать обратно изменения и перезаписать существующую базу данных.
Возможно, более простой альтернативой будет использование vnStat 2.0 в обеих средах. Это привело бы к созданию базы данных sqlite, содержащей данные, и я бы предположил, что для работы с существующими данными доступны инструменты Windows. Эта опция потребует меньше шагов, но, тем не менее, требует некоторого подхода к тому, как vnStat хранит данные в базе данных.