Внстат не обновляется
Я установил vnstat на своем сервере Ubuntu 14.04, чтобы отслеживать использование Интернета (у меня ограниченный ежемесячный перевод). Однако база данных никогда не обновляется. Я пытался удалить / переустановить, но это не работает. Что мне нужно сделать, чтобы vnstat обновился и был точным?
8 ответов
Бежать
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 - это временный файл, который иногда может исчезать.
После установки 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 [ OK ]
После инициализации базы данных она готова контролировать использование полосы пропускания. Вы можете просмотреть отчет командой invoke vnstat
,
Те же проблемы здесь.
После проверки деталей выяснилось, что базы для разных устройств (eth0, ppp0, wlan0
и т. д.) были созданы в /var/lib/vnstat
но эти файлы принадлежали пользователю. Послеsudo chown -R vnstat:vnstat /var/lib/vnstat
кажется, все в порядке. Я также должен был проверить интерфейс по умолчанию в /etc/vnstat.conf
- это было не для меня, поэтому я просто изменил это.
Извините, я должен был сделать это своим собственным ответом вместо того, чтобы редактировать Boby's, так как мое редактирование было отклонено:
По умолчанию при установке 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 минут после исправления.
Вы уверены, что vnstatd
работает, то есть демон (фоновый процесс), который выполняет сбор данных? Если нет, уточните у
ps aux | grep vnstatd
Вы должны увидеть это там.
Для меня после обновления до 14.04 vnstatd
продолжал падать при запуске.
Мое решение было удалить папку, которую он использует для хранения своих данных (/var/lib/vnstat
) и создайте новый пустой каталог. Вам может понадобиться бежать vnstatd
вручную один раз, чтобы создать базу данных после этого:
vnstatd -n -s
Кроме того, мне также нужно было подать заявку
sudo chown -R vnstat:vnstat /var/lib/vnstat
как предложено HostOnNet.
Тема старая, но все еще полезная. Все ответы есть, просто их нужно было поставить в правильном порядке, что сработало для меня:
1. Проверьте сетевой интерфейс
После установки vnstat выполните следующую команду:
ifconfig
Это перечислит все доступные интерфейсы. В этом примере в качестве рассматриваемого интерфейса будет использоваться eth0. В вашем случае используйте любое значение, которое у вас есть.
2. Обновите конфигурацию vnstat с помощью сетевого интерфейса.
Обновите '/etc/vnstat.conf', указав значение вашего сетевого интерфейса. По умолчанию используется eth0. Измените на любое значение, которое у вас есть в # 1.
Interface "eth0"
3. Создайте базу данных vnstat для вашего сетевого интерфейса.
Выполните следующую команду:
sudo vnstat -i eth0 -u
Error: Unable to read database "/var/lib/vnstat/eth0": No such file or directory
Info: -> A new database has been created.
Это создаст необходимую БД для вашего сетевого интерфейса. Используйте значение интерфейса, которое у вас есть в # 1.
4. Исправьте разрешения БД сетевого интерфейса vnstat.
Выполнение команды в # 3 создаст требуемую БД с правами root, которые нам нужно сначала исправить, выполнив следующую команду:
sudo chown -R vnstat:vnstat /var/lib/vnstat
5. Запустите внстат
Выполните следующие команды, чтобы запустить vnstat и проверить:
sudo systemctl start vnstat
sudo systemctl status vnstat -l
vnstat
Попробуйте вывести некоторые из этой справки:
$ vnstat --help
vnStat 1.11 by Teemu Toivola
-q, --query query database
-h, --hours show hours
-d, --days show days
-m, --months show months
-w, --weeks show weeks
-t, --top10 show top10
-s, --short use short output
-u, --update update database
-i, --iface select interface (default: eth0)
-?, --help short help
-v, --version show version
-tr, --traffic calculate traffic
-ru, --rateunit swap configured rate unit
-l, --live show transfer rate in real time
See also "--longhelp" for complete options list and "man vnstat".