下面的代码,每秒更新一次当前以eth开头的网口的速率
#!/bin/bash
add_unit()
{
TX=$1
if [[ $TX -lt 1024 ]];then
tx="${TX}B/s"
elif [[ $TX -gt 1048576 ]];then
tx=$(($TX/1048576))MB/s
else
tx=$(($TX/1024))KB/s
fi
echo $tx
}
while true
do
x=$(cat /proc/net/dev | grep eth.: | sed -e 's/://g' -e 's/eth//g' | awk '{print "count="NR " " "ethname["NR"]="$1 " " "rx0["NR"]="$2 " " "tx0["NR"]="$10}')
eval "$x"
sleep 1
clear
echo -e "interface \t RX `date +%k:%M:%S` \t TX"
x=$(cat /proc/net/dev | grep eth.: | sed -e 's/://g' -e 's/eth//g' | awk '{print "count="NR " " "ethname["NR"]="$1 " " "rx1["NR"]="$2 " " "tx1["NR"]="$10}')
eval "$x"
for i in `seq 1 $count`; do
x=$((${rx1[$i]}-${rx0[$i]}))
RX[$i]=$(add_unit $x)
x=$((${tx1[$i]}-${tx0[$i]}))
TX[$i]=$(add_unit $x)
echo -e "eth${ethname[$i]} \t\t ${RX[$i]} \t ${TX[$i]} "
done
done