각 네트의 트래픽을 실시간으로 표시

5954 단어 linux 사용
다음 코드는 현재 eth로 시작하는 인터페이스의 속도를 1초에 한 번씩 업데이트합니다
#!/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

좋은 웹페이지 즐겨찾기