我需要计算接口上的平均网络流量。我知道类似的软件iftop
,但我不能在我的情况下使用它。
我正在运行一个程序,该程序将计算接口上的平均网络流量。因此,我需要一个产生简单输出的命令。程序iftop
以非常复杂的方式输出值,其他应用程序无法轻松解析。
我正在寻找类似的东西:
命令:
$ get-avg-traffic --interface=eth0 --seconds-interval=30 --type=incoming --unit=KB
输出:
783846
是否已经有软件支持(某些)此功能?
你可能想看看 vnstat
您可以拥有每小时和每月的统计数据。
该命令
ip
(以前netstat
)将为您提供此类信息,但您需要进行解析才能获得一个数字 AFAICT(我不是这方面的专家)。给出如下输出:
例如:
ip -s -c link show wlan15 | tail -n1 | cut -d " " -f5
会给出
146013456
或类似的,原始字节中的 146M 作为特定接口上的传输量。tail
取最后一行(使用它head
来选择任意行[还有很多其他方法]),cut 将输出分隔到以“”作为分隔符的字段并选择第五个字段。在你的程序中使用这个值来计算平均传输率应该很简单。
使用
ifconfig
. 对于长期监测vnstat
更合适。我的建议是以下脚本,基于
ifconfig
我之前的回答,其中提供了更多解释。1.创建可执行脚本文件,名为
get-traffic
,位于/usr/local/bin
可作为 shell 命令访问(更详细的步骤)。2.脚本内容
get-traffic
为:3.脚本调用语法:
4、输入参数:
<interface name>
使用命令ifconfig
获取接口名称。默认:eth0
<units of measurement>
可用值:B
,KB
,KiB
,MB
,Mib
,Gb
,Gib
. 默认:MB
<period of measure>
片刻之间。默认:30
<type of the output>
可用值:verbose
,all
,incoming
,outgoing
,total
.5.使用示例: