Linux實時查看網卡流量

將下列腳本保存爲可執行腳本文件,好比叫traff.sh。

一、本腳本可自定義欲查看接口,精確到小數,並可根據流量大小靈活顯示單位。
二、此腳本的採集間隔爲1秒。
三、此腳本不須要額外再安裝軟件,可在急用狀況下應付一下,好比臨時想看一下是否有流量經過,大概爲多少等。
四、一些流量查看軟件因爲計算的精確度不一樣,因此與此腳本顯示的數值不可能一致,此腳本的顯示結果與du meter對比過,相差很小。還有就是傳輸工具自己顯示的傳輸速度並不許確。
用法爲:
一、chmod +x ./traff.sh 將文件改爲可執行腳本。
二、./traff.sh eth0便可開始監看接口eth0流量,按ctrl+c退出。

代碼片斷(1) [全屏查看全部代碼]

1. [代碼][Shell/批處理]代碼     跳至 [1] [全屏預覽]

 
01 #!/bin/bash
02 while [ "1" ]
03 do
04 eth=$1
05 RXpre=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $2}')
06 TXpre=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $10}')
07 sleep 1
08 RXnext=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $2}')
09 TXnext=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $10}')
10 clear
11 echo  -e  "\t RX `date +%k:%M:%S` TX"
12 RX=$((${RXnext}-${RXpre}))
13 TX=$((${TXnext}-${TXpre}))
14   
15 if [[ $RX -lt 1024 ]];then
16 RX="${RX}B/s"
17 elif [[ $RX -gt 1048576 ]];then
18 RX=$(echo $RX | awk '{print $1/1048576 "MB/s"}')
19 else
20 RX=$(echo $RX | awk '{print $1/1024 "KB/s"}')
21 fi
22   
23 if [[ $TX -lt 1024 ]];then
24 TX="${TX}B/s"
25 elif [[ $TX -gt 1048576 ]];then
26 TX=$(echo $TX | awk '{print $1/1048576 "MB/s"}')
27 else
28 TX=$(echo $TX | awk '{print $1/1024 "KB/s"}')
29 fi
30   
31 echo -e "$eth \t $RX   $TX "
32 done
相關文章
相關標籤/搜索