Как я могу напечатать вывод vnstat -l в файл? что я пробовал:

vnstat -l &> file

но это просто зависание

2 ответа2

3

Удалите опцию l . Со страницы руководства vnstat :

   -l, --live mode
          Display current transfer rate for the selected interface in real time until interrupted. Statis‐
          tics  will be shown after interruption if the runtime was more than 10 seconds. An optional mode
          parameter can be used to select between the displaying of packets per second (mode 0) and trans‐
          fer  counters  (mode  1) during execution.  --style can also be used to affect the layout of the
          output.

Таким образом, -l заставляет vnstat отображать вывод в "живом режиме", постоянно обновляя, поэтому вы не можете захватить вывод. Если вы хотите легко разбираемый формат, используйте

vnstat --dumpdb

Чтобы просто сохранить стандартный вывод, сделайте

vnstat > log.txt

Если вам нужна текущая скорость загрузки и выгрузки, vnstat не является подходящим инструментом для работы. Попробуйте sar из пакета sysstat (см. Man sar для получения дополнительной информации):

sudo apt-get install sysstat 
sudo sar -n DEV 1 1

Чтобы извлечь текущую * скорость загрузки и выгрузки интерфейса wlan0 из вывода sar , выполните:

sudo sar -n DEV 1 1 | grep wlan0 | tail -n 1 | gawk '{print "Down: "$5,"Up: "$6}'

* Что означает "текущий"? sar (и любой другой метод) потребует несколько миллисекунд для генерации вывода.

0

Я не знаю, хотите ли вы распечатать только итоговую сводку в файл за какой-то период, когда вы собираетесь отслеживать сетевую активность, но вы можете обмануть это следующим образом:

vnstat -l -i <device> >> dump.txt

Единственная проблема заключается в том, что vnstat будет записывать вывод в файл каждую секунду, так что это не самый удобный способ. Для непрерывного мониторинга с логом каждую секунду или около того тердон отвечал на ваш вопрос.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .