这里获取网卡流量的方式是通过bash内的sleep命令来做延迟操作,相隔一秒的时间来截取两次流入流出流量的差来算出每秒流量流速,具体代码如下
#!/bin/bash #author merci ######################################################################################## #####################################系统流量监控####################################### ######################################################################################## #获取开始入流量 InflowStart=`ifconfig eth1 | grep "RX bytes" | sed "s/RX bytes://" | awk '{print $1}'` #获取开始出流量 OutflowStart=`ifconfig eth1 | grep "TX bytes" | sed "s/.*TX bytes://" | awk '{print $1}'` #1s 延迟 sleep 1s #获取结束入流量 InflowEnd=`ifconfig eth1 | grep "RX bytes" | sed "s/RX bytes://" | awk '{print $1}'` #获取结束出流量 OutflowEnd=`ifconfig eth1 | grep "TX bytes" | sed "s/.*TX bytes://" | awk '{print $1}'` Inflow=`awk 'BEGIN{printf "%d\n", '${InflowEnd}'-'${InflowStart}'}'` Outflow=`awk 'BEGIN{printf "%d\n", '${OutflowEnd}'-'${OutflowStart}'}'` echo -e "inflow: `expr ${Inflow} / 1000`KB" echo -e "outflow: `expr ${Outflow} / 1000`KB"