一:查看网卡实时流量
#该脚本源自:博客园-吕振江
#文章地址为:https://www.cnblogs.com/lvzhenjiang/p/16251352.html
#!/bin/bash
while true
do
n=1
while (($n<=$(cat /proc/net/dev | wc -l)))
do # 获取当前时刻网口接收与发送的流量
Rb_pre[$n]=$(cat /proc/net/dev | grep : | sed -n "${n}p" | awk '{print $2}')
Rp_pre[$n]=$(cat /proc/net/dev | grep : | sed -n "${n}p" | awk '{print $3}')
Tb_pre[$n]=$(cat /proc/net/dev | grep : | sed -n "${n}p" | awk '{print $10}')
Tp_pre[$n]=$(cat /proc/net/dev | grep : | sed -n "${n}p" | awk '{print $11}')
inet[$n]=$(cat /proc/net/dev | grep : | sed -n "${n}p" | sed 's/:/ /g' | awk '{print $1}')
((n+=1))
done
sleep 1
m=1
while (($m<=$(cat /proc/net/dev | wc -l)))
do # 获取1秒后网口接收与发送的流量
Rb_next[$m]=$(cat /proc/net/dev | grep : | sed -n "${m}p" | awk '{print $2}')
Rp_next[$m]=$(cat /proc/net/dev | grep : | sed -n "${m}p" | awk '{print $3}')
Tb_next[$m]=$(cat /proc/net/dev | grep : | sed -n "${m}p" | awk '{print $10}')
Tp_next[$m]=$(cat /proc/net/dev | grep : | sed -n "${m}p" | awk '{print $11}')
((m+=1))
done
clear
echo -e "IP\t RX-bytes\t TX-bytes\t RX-packets\t TX-packets\t TIME"
i=1
while (( $i<=`expr ${#Rb_pre[*]} - 2`))
do
RXb[i]=$((Rb_next[i]-Rb_pre[i])) #在$取值的时候,括号里面只需要跟变量即可(变量可自行进行计算)
TXb[i]=$((Tb_next[i]-Tb_pre[i]))
RXp[i]=$((Rp_next[i]-Rp_pre[i]))
TXp[i]=$((Tp_next[i]-Tp_pre[i]))
ipadd[i]=$(ifconfig ${inet[i]} | grep "inet " | awk '{print $2}') #获取网卡IP地址
if [ ${RXb[i]} -lt 1024 ];then
RXb[i]="${RXb[i]}B/s"
elif [ ${RXb[i]} -gt 1048576 ];then
RXb[i]=$(echo ${RXb[i]} | awk '{print $1/1048576 "MB/s"}')
else
RXb[i]=$(echo ${RXb[i]} | awk '{print $1/1024 "KB/s"}')
fi
# 判断接收流量如果大于MB数量级则显示MB单位,否则显示KB数量级
if [ ${TXb[i]} -lt 1024 ];then
TXb[i]="${TXb[i]}B/s"
elif [ ${TXb[i]} -gt 1048576 ];then
TXb[i]=$(echo ${TXb[i]} | awk '{print $1/1048576 "MB/s"}')
else
TXb[i]=$(echo ${TXb[i]} | awk '{print $1/1024 "KB/s"}')
fi
if [ ${RXp[i]} -lt 1000 ];then
RXp[i]=${RXp[i]}
else
RXp[i]=$(echo ${RXp[i]} | awk '{print $1/1000 "K"}')
fi
if [ ${TXp[i]} -lt 1000 ];then
TXp[i]=${TXp[i]}
else
TXp[i]=$(echo ${TXp[i]} | awk '{print $1/1000 "K"}')
fi
echo -e "${ipadd[i]} \t ${RXb[i]} \t ${TXb[i]} \t ${RXp[i]} \t ${TXp[i]} \t `date +%k:%M:%S` "
let "i++"
done
done
如果文章对你有帮助,欢迎点击上方按钮打赏作者
暂无评论