如何从 Linux 命令行获取任意给定秒的接口带宽?

如何从 Linux 命令行获取任意给定秒的接口带宽?

我正在做一个学校项目,其中我想获取任意给定秒或其他某个小时间增量的网络接口带宽。我正在编写的 Perl 脚本需要这个。因此它需要是非交互式的并且只打印结果。

有什么建议么?

答案1

eth0自接口启动以来,发送和接收的字节数可以分别在/sys/class/net/eth0/statistics/tx_bytes和中读取/sys/class/net/eth0/statistics/rx_bytes。数据包数可以在…/tx_packets和中读取…/rx_packets。如果您的旧内核不提供这些文件,则数据可在 的输出中找到/sbin/ifconfig eth0

答案2

一个简单的方法是:

  • 执行是否配置interface name一次,捕获其输出
  • 从“RX 字节”和“TX 字节”中提取值
  • 等一下
  • 重复前两个步骤
  • 计算增量

相关内容