这里获取网卡流量的方式是通过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"内容版权声明:除非注明,否则皆为本站原创文章。
转载注明出处:https://sulao.cn/post/488
评论列表