说明:此脚本可以监控Linux系统下网卡流量,其中的注释信息本人用多个减号“-”划分开,为了方便这一块功能代码的表示。大家可以下载自己任意修改此脚本。本人属于一级笨鸟级别,希望大家能对脚本不足的地方给出评价。谢谢啦O(∩_∩)O~
#!/bin/bash
band () {
while true
do
rx1=$(cat /proc/net/dev | grep "eth0" | tr : " " | awk '{print $2}')
tx1=$(cat /proc/net/dev | grep "eth0" | tr : " " | awk '{print $10}')
sleep 1
rx2=$(cat /proc/net/dev | grep "eth0" | tr : " " | awk '{print $2}')
tx2=$(cat /proc/net/dev | grep "eth0" | tr : " " | awk '{print $10}')
clear
rxdiffer=$(($rx2 - $rx1))
txdiffer=$(($tx2 - $tx1))
#-----------INT KB/MB------
RRXKB=$(($rxdiffer/1024))
TTXKB=$(($txdiffer/1024))
RRXMB=$(($RRXKB/1024))
TTXMB=$(($TTXKB/1024))
#-------------------------------
#sleep 1
#---------------precision KB/MB---------------------
RXKB=$(awk 'BEGIN {print ('$rxdiffer'/1024)}')
TXKB=$(awk 'BEGIN {print ('$txdiffer'/1024)}')
RXMB=$(awk 'BEGIN {print ('$RXKB/1024')}')
TXMB=$(awk 'BEGIN {print ('$TXKB/1024')}')
#+++other count precision method+++
#RXKB=$(echo "scale=2;${rxdiffer}/1024" | bc)
#TXKB=$(echo "scale=2;${txdiffer}/1024" | bc)
#++++++++++++++++++++++++++++++++++
#---------------------------------------------------
#---------judge KB/MB--------------
if [ $RRXKB -lt 1024 ]; then
unit1="Kibp/s"
else
unit1="Mibp/s"
RXKB="$RXMB"
fi
if [ $TTXKB -lt 1024 ]; then
unit2="Kibp/s"
else
unit2="Mibp/s"
TXKB="$TXMB"
fi
#-----------------------------------
#sleep 1
echo -e $(date +%T;echo "-";date +%F;echo ">";echo "bandwidth")
printf "\n"
echo "IN_bandwidth: $rxdiffer /Byte"
echo "OUT_bandwidth: $txdiffer /Byte"
#-------------------other input medthod-------------------
#echo -e $(date +%T)
#echo -e "------------------------------------------------"
#echo -e "\t IN_bandwidth \t\t OUT_bandwidth"
#echo -e "\t ${RXKB} /$unit1 \t\t ${TXKB} /$unit2"
#echo -e "------------------------------------------------"
#---------------------------------------------------------
printf "%s\n" "--------------------------------------------------"
printf "\t%s\t" "IN_Bandwidth"
printf "\t%s\t\n" "OUT_Bandwidth"
printf " \n"
printf " %10.2f /$unit1" "$RXKB"
printf "\t %10.2f /$unit2\n" "$TXKB"
printf "%s\n" "--------------------------------------------------"
done
}
band
转载于:https://blog.51cto.com/fengqiang/859163