统计网卡速率shell脚本

114 阅读1分钟
#Modified by lifei4@datangmobile.cn
echo ===DTmobile NetSpeedMonitor===
sleep 1
echo loading...
sleep 1
 
ethn=$1
  
while true
do
  RXpre=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{print $2}')
  TXpre=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{print $10}')
  sleep 1
  RXnext=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{print $2}')
  TXnext=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{print $10}')
  
  clear
  echo -e "\t\t\t  RX \t\t   TX  \t\t\t TIME"
  
  RX=$((RXnext-RXpre))
  TX=$((TXnext-TXpre))
  
  if [ $RX -lt 1024 ];then
    RX="${RX}B/s"
  elif [ $RX -gt 1048576 ];then
    RX=$(echo $RX | awk '{print $1/1048576 "MB/s"}')
  else
    RX=$(echo $RX | awk '{print $1/1024 "KB/s"}')
  fi
  
  if [ $TX -lt 1024 ];then
    TX="${TX}B/s"
  elif [[ $TX -gt 1048576 ]];then
    TX=$(echo $TX | awk '{print $1/1048576 "MB/s"}')
  else
    TX=$(echo $TX | awk '{print $1/1024 "KB/s"}')
  fi
  
  echo -e "$ethn \t $RX   $TX   \t\t\t `date +%k:%M:%S` "
  
done
done