vnstat:将当前网络活动打印到文件中

vnstat:将当前网络活动打印到文件中

我如何将输出打印vnstat -l到文件?我尝试过:

vnstat -l &> file

但它只是挂断

答案1

删除该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(以及任何其他方法)将需要几毫秒才能生成输出。

答案2

我不知道您是否只想将要监控网络活动的某个时期的最终摘要打印到文件中,但您可以通过这种方式来欺骗它:

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

唯一的问题是 vnstat 会每秒将输出写入文件,因此这不是最方便的方法。对于每秒记录一次日志的持续监控,terdon 回答了您的问题。

相关内容