Как я могу напечатать вывод vnstat -l
в файл?
что я пробовал:
vnstat -l &> file
но это просто зависание
Как я могу напечатать вывод vnstat -l
в файл?
что я пробовал:
vnstat -l &> file
но это просто зависание
Удалите опцию 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
(и любой другой метод) потребует несколько миллисекунд для генерации вывода.
Я не знаю, хотите ли вы распечатать только итоговую сводку в файл за какой-то период, когда вы собираетесь отслеживать сетевую активность, но вы можете обмануть это следующим образом:
vnstat -l -i <device> >> dump.txt
Единственная проблема заключается в том, что vnstat будет записывать вывод в файл каждую секунду, так что это не самый удобный способ. Для непрерывного мониторинга с логом каждую секунду или около того тердон отвечал на ваш вопрос.