shell脚本查看网速(模拟sar -n Dev 1)

shell脚本查看网速(模拟sar -n Dev 1)

2025-12-12

 1 获取网卡实时速率/proc/net/dev

# 获取网卡实时速率/proc/net/dev
cat /proc/net/dev
Inter-face ReceiveBytes      packets  errs drop fifo frame compressed multicast TransmitBytes packets errs drop fifo colls carrier compressed
    lo: 12996155386 86290245    0    0    0     0          0     0     12996155386  86290245    0    0    0     0       0          0
  eth0: 26746916448 96220272    0    0    0     0          0     0     144910621984 343736979   0    0    0     0       0          0

2 shell 脚本

为了获取速率数据,写了shell脚本

getNetRatio.sh

# 输出header
printf "%s %-16s %-16s %-16s %-16s\n" $(date "+%H:%M:%S") "recByte(Kb/s)" "recPack/s" "transByte(Kb/s)" "transPack/s"
# 每隔1秒获取一次系统性能数据,持续1分钟
DURATION=$1 # $1 第一个入参
INTERVAL=1
for (( num=0; num<=$DURATION; num+=INTERVAL ))
do
    str=`grep eth0 /proc/net/dev|awk '{printf("%s,%s,%s,%s",$2,$3,$10,$11)}'`;
    # 将逗号替换为空格
    str=${str//,/ }  
    for element in $str; do
        i=$i+1;
        if((i==1));then
            recByteIncr=$[element-recByte]
            recByte=$element;
        elif((i==2));then
            recPackIncr=$[element-recPack]
            recPack=$element;
        elif((i==3));then
            transByteIncr=$[element-transByte]
            transByte=$element;
        elif((i==4));then
            transPackIncr=$[element-transPack]
            transPack=$element;
        fi        
    done
    i=0
    if((num>0));then
        printf "%-10s \033[34m%-16.2f \033[34m%-16d \033[34m%-16.2f \033[34m%-16d\033[0m\n" $(date "+%H:%M:%S") $(echo "$recByteIncr/1024" | bc -l) $recPackIncr $(echo "$transByteIncr/1024" | bc -l) $transPackIncr
    fi
    sleep $INTERVAL
done
echo "数据记录完成。"

3 调用

sh getNetRatio.sh 5
16:24:36 recByte(Kb/s)    recPack/s        transByte(Kb/s)  transPack/s  
16:24:37   2.86             48               1.73             29              
16:24:38   2.91             49               1.82             30              
16:24:39   1.48             25               1.13             18              
16:24:40   2.91             49               1.82             30              
16:24:41   5.77             97               3.24             54              
数据记录完成。

 

posted @ 2026-01-12 20:19  明-Ming  阅读(4)  评论(0)    收藏  举报