shell脚本获取网卡的实时流量

#!/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
使用方法:
# chmod +x test.sh
# ./test.sh eth0

猜你喜欢

转载自regjtc.iteye.com/blog/1828526