1、本腳本可自定義欲查看接口,精確到小數(shù),并可根據(jù)流量大小靈活顯示單位。
2、此腳本的采集間隔為1秒。
3、此腳本不需要額外再安裝軟件,可在急用情況下應(yīng)付一下,比如臨時(shí)想看一下是否有流量通過,大概為多少等。
4、一些流量查看軟件由于計(jì)算的精確度不同,所以與此腳本顯示的數(shù)值不可能一致,此腳本的顯示結(jié)果與du meter對(duì)比過,相差很小。還有就是傳輸工具本身顯示的傳輸速度并不準(zhǔn)確。
用法為:
1、chmod +x ./traff.sh 將文件改成可執(zhí)行腳本。
2、./traff.sh eth0即可開始監(jiān)看接口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
#################################################################################
查看網(wǎng)絡(luò)平均流量
下面的腳本可以很好的監(jiān)控你的網(wǎng)絡(luò)的平均流量,你可以提定時(shí)間,首先制定法
#!/bin/bash
echo -n "which nic?"
read eth
echo "the nic is "$eth
echo -n "how much seconds:"
read sec
echo "duration is "$sec" seconds, wait please..."
infirst=$(awk '/'$eth'/{print $1 }' /proc/net/dev |sed 's/'$eth'://')
outfirst=$(awk '/'$eth'/{print $10 }' /proc/net/dev)
sumfirst=$(($infirst+$outfirst))
sleep $sec"s"
inend=$(awk '/'$eth'/{print $1 }' /proc/net/dev |sed 's/'$eth'://')
outend=$(awk '/'$eth'/{print $10 }' /proc/net/dev)
sumend=$(($inend+$outend))
sum=$(($sumend-$sumfirst))
echo $sec" seconds total :"$sum"bytes"
aver=$(($sum/$sec))
echo "avrage :"$aver"bytes/sec"
##########################################################################
Linux流量監(jiān)控的iftop工具
iftop是什么?
iftop是類似于top的實(shí)時(shí)流量監(jiān)控工具。
官方網(wǎng)站:http://www./~pdw/iftop/
安裝iftop
安裝方法1、編譯安裝
如果采用編譯安裝可以到iftop官網(wǎng)下載最新的源碼包。
安裝前需要已經(jīng)安裝好基本的編譯所需的環(huán)境,比如make、gcc、autoconf等。安裝iftop還需要安裝libpcap和libcurses。
CentOS上安裝所需依賴包:
yum install flex byacc libpcap ncurses ncurses-devel libpcap-devel
Debian上安裝所需依賴包:
apt-get install flex byacc libpcap0.8 libncurses5
下載iftop
wget http://www./pdw/iftop/download/iftop-0.17.tar.gz
tar zxvf iftop-0.17.tar.gz
cd iftop-0.17
./configure
make && make install
安裝方法2:(懶人辦法,最簡單)
直接省略上面的步驟
CentOS系統(tǒng):
yum install flex byacc libpcap ncurses ncurses-devel
wget ftp://fr2.rpmfind.net/linux/dag/redhat/el5/en/i386/dag/RPMS/iftop-0.17-1.el5.rf.i386.rpm
rpm -ivh iftop-0.17-1.el5.rf.i386.rpm
Debian系統(tǒng) 運(yùn)行:apt-get install iftop
運(yùn)行iftop
直接運(yùn)行: iftop
效果如下圖:
相關(guān)參數(shù)及說明
1、iftop界面相關(guān)說明
界面上面顯示的是類似刻度尺的刻度范圍,為顯示流量圖形的長條作標(biāo)尺用的。
中間的<= =>這兩個(gè)左右箭頭,表示的是流量的方向。
TX:發(fā)送流量
RX:接收流量
TOTAL:總流量
Cumm:運(yùn)行iftop到目前時(shí)間的總流量
peak:流量峰值
rates:分別表示過去 2s 10s 40s 的平均流量
2、iftop相關(guān)參數(shù)
常用的參數(shù)
-i設(shè)定監(jiān)測(cè)的網(wǎng)卡,如:# iftop -i eth1
-B 以bytes為單位顯示流量(默認(rèn)是bits),如:# iftop -B
-n使host信息默認(rèn)直接都顯示IP,如:# iftop -n
-N使端口信息默認(rèn)直接都顯示端口號(hào),如: # iftop -N
-F顯示特定網(wǎng)段的進(jìn)出流量,如# iftop -F 10.10.1.0/24或# iftop -F 10.10.1.0/255.255.255.0
-h(display this message),幫助,顯示參數(shù)信息
-p使用這個(gè)參數(shù)后,中間的列表顯示的本地主機(jī)信息,出現(xiàn)了本機(jī)以外的IP信息;
-b使流量圖形條默認(rèn)就顯示;
-f這個(gè)暫時(shí)還不太會(huì)用,過濾計(jì)算包用的;
-P使host信息及端口信息默認(rèn)就都顯示;
-m設(shè)置界面最上邊的刻度的最大值,刻度分五個(gè)大段顯示,例:# iftop -m 100M
進(jìn)入iftop畫面后的一些操作命令(注意大小寫)
按h切換是否顯示幫助;
按n切換顯示本機(jī)的IP或主機(jī)名;
按s切換是否顯示本機(jī)的host信息;
按d切換是否顯示遠(yuǎn)端目標(biāo)主機(jī)的host信息;
按t切換顯示格式為2行/1行/只顯示發(fā)送流量/只顯示接收流量;
按N切換顯示端口號(hào)或端口服務(wù)名稱;
按S切換是否顯示本機(jī)的端口信息;
按D切換是否顯示遠(yuǎn)端目標(biāo)主機(jī)的端口信息;
按p切換是否顯示端口信息;
按P切換暫停/繼續(xù)顯示;
按b切換是否顯示平均流量圖形條;
按B切換計(jì)算2秒或10秒或40秒內(nèi)的平均流量;
按T切換是否顯示每個(gè)連接的總流量;
按l打開屏幕過濾功能,輸入要過濾的字符,比如ip,按回車后,屏幕就只顯示這個(gè)IP相關(guān)的流量信息;
按L切換顯示畫面上邊的刻度;刻度不同,流量圖形條會(huì)有變化;
按j或按k可以向上或向下滾動(dòng)屏幕顯示的連接記錄;
按1或2或3可以根據(jù)右側(cè)顯示的三列流量數(shù)據(jù)進(jìn)行排序;
按<根據(jù)左邊的本機(jī)名或IP排序;
按>根據(jù)遠(yuǎn)端目標(biāo)主機(jī)的主機(jī)名或IP排序;
按o切換是否固定只顯示當(dāng)前的連接;
按f可以編輯過濾代碼,這是翻譯過來的說法,我還沒用過這個(gè)!
按!可以使用shell命令,這個(gè)沒用過!沒搞明白啥命令在這好用呢!
按q退出監(jiān)控。
常見問題
1、make: yacc: Command not found
make: *** [grammar.c] Error 127
解決方法:apt-get install byacc / yum install byacc
2、configure: error: Curses! Foiled again!
(Can't find a curses library supporting mvchgat.)
Consider installing ncurses.
解決方法:apt-get install libncurses5-dev / yum install ncurses-devel
#######################################################################################
Linux流量監(jiān)控的nload工具
官網(wǎng)及下載 http://www./nload/index.html
http://www./nload/nload-0.7.2.tar.gz
http://dl.:5180/soft/nload-0.7.2.tar.gz
安裝
wget http://www./nload/nload-0.7.2.tar.gz
tar zxvf nload-0.7.2.tar.gz
cd nload-0.7.2
./configure;make;make install
使用
直接用nload回車即可,也可以指定網(wǎng)卡,如nload eth1
還可以指定是以K或M來顯示流量,如nload -u M顯示的流量是以MB為單位的
看看還有哪些參數(shù)或選項(xiàng)
[root@wdlinux ~]# nload -h
nload 默認(rèn)分為上下兩塊:上半部分是:Incoming也就是進(jìn)入網(wǎng)卡的流量,下半部分是:Outgoing,也就是從這塊網(wǎng)卡出去的流量,每 部分都有當(dāng)前流量(Curr),平均流量(Avg),最小流量(Min),最大流量(Max),總和流量(Ttl)這幾個(gè)部分,看起來還是蠻直觀的。
另外,你也可以自己定義流量數(shù)值顯示的單位
#nload --help
就可以看到具體的相關(guān)參數(shù)了。