[Linux]實時查看網卡流量

下列腳本可實時查看網卡流量

1、本腳本可自定義欲查看接口,精確到小數,並可根據流量大小靈活顯示單位。
2、此腳本的採集間隔為1秒。
3、此腳本不需要額外再安裝軟件,可在急用情況下應付一下,比如臨時想看一下是否有流量通過,大概為多少等。
4、一些流量查看軟件由於計算的精確度不同,所以與此腳本顯示的數值不可能一致,此腳本的顯示結果與du meter對比過,相差很小。還有就是傳輸工具本身顯示的傳輸速度並不準確。

用法為:

./traff.sh eth0

即可開始監看接口eth0流量,按ctrl+c退出。

腳本文件內容:

#!/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 ./traff.sh
Related Posts Plugin for WordPress, Blogger...