获取网卡网络流量

#!/bin/bash
while [ "1" ]
do
        eth=$1
        RXpre=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $2}')
        TXpre=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $10}')
        sleep 1
        RXnext=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $2}')
        TXnext=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $10}')
        clear
        echo  -e  "\t RX `date +%k:%M:%S` TX"
        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 "$eth \t $RX   $TX "
done

posted on 2017-02-06 14:04  guoqp  阅读(560)  评论(0编辑  收藏  举报

导航