歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux管理 >> Linux服務

查看linux服務器流量的方法總結

要查看linux服務器流量有點麻煩沒那麼直觀與現成的方法,經使用總結方法有二種,安裝第三方和自制shell腳本工具進行查看網卡流量。

方法一:

通用於linux系統,但安裝方法有區別,centos系統下的iftop安裝方法,
執行

yum install iftop

安裝,如果不能正常安裝成功,提示失敗。則編譯安裝,編譯安裝前,請確認是否安裝GCC,如果是新系統默認是沒有安裝有的,運行

yum install gcc

之後編譯安裝iftop:

yum -y install flex byacc libpcap ncurses ncurses-devel libpcap-devel
wget http://www.ex-parrot.com/pdw/iftop/download/iftop-0.17.tar.gz
tar zxvf iftop-0.17.tar.gz
cd iftop-0.17
./configure
make && make install

debian/ubuntu系統的安裝方法,執行

apt-get install iftop

安裝好後運行方法:

iftop -i eth0

TX,發送流量;RX,接收流量;TOTAL,總流量;Cumm,運行iftop期間流量;peak,流量峰值;rates,分別代表2秒、10秒、40秒的平均流量。 界面可使用快捷鍵:h幫助,n切換顯示IP主機名,s是否顯示本機信息,d是否顯示遠端信息,N切換端口服務名稱,b切換是否時數流量圖形條。

方法二:

 


1) 可以使用ifconfig命令查看網卡eth0的使用情況

ifconfig eth0

eth0 Link encap:Ethernet HWaddr 00:50:56:B2:1D:65

inet addr:192.168.0.2 Bcast:192.168.0.255 Mask:255.255.255.0

inet6 addr: 2001:da8:20d:31:2::/64 Scope:Global

inet6 addr: 2001:da8:20d:31:250:56ff:feb2:1d65/64 Scope:Global

inet6 addr: fe80::250:56ff:feb2:1d65/64 Scope:Link

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:949925 errors:0 dropped:0 overruns:0 frame:0

TX packets:476662 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:1350085212 (1.2 GiB) TX bytes:33019912 (31.4 MiB)

 

2) 最後一行可以查看網卡接收和發送字節

ifconfig eth0 | grep bytes

RX bytes:1350100537 (1.2 GiB) TX bytes:33023756 (31.4 MiB)

3) 字節數是隨著時間的增長不停的增加的,查看當前接收字節數,可使用如下命令

ifconfig eth0 |grep bytes | awk '{print $2}' | awk -F ":" '{print $2}'

1350116823

ifconfig eth0 |grep bytes | awk '{print $2}' | awk -F ":" '{print $2}'

1350120591

 

4) 由於字節數的不斷增長,所以每間隔1秒取得值相減即為該秒的網速值

ifconfig eth0 |grep bytes | awk '{print $2}' | awk -F ":" '{print $2}' ; sleep 1s ; ifconfig eth0 |grep bytes | awk '{print $2}' | awk -F ":" '{print $2}'

1350168724

1350168876

 

5) 兩個命令返回值相減,需要使用腳本來做操作

vi RX.sh

輸入以下內容

RX0=$(ifconfig eth0 |grep bytes | awk '{print $2}' | awk -F ":" '{print $2}')

sleep 1s

RX1=$(ifconfig eth0 |grep bytes | awk '{print $2}' | awk -F ":" '{print $2}')

echo $((RX1-RX0))

sh RX.sh

240

得出的240,即為當前網卡的實時接收網速為240B/s

 

6) 如果需要顯示單位為KB/s或者MB/s,需要在原來的值後面除以1024,但是默認使用echo除法只能顯示整數,不能顯示小數,這裡需要使用awk命令

vi RX.sh

修改為以下內容

RX0=$(ifconfig eth0 |grep bytes | awk '{print $2}' | awk -F ":" '{print $2}')

sleep 1s

RX1=$(ifconfig eth0 |grep bytes | awk '{print $2}' | awk -F ":" '{print $2}')

awk "BEGIN{print ($RX1-$RX0)/1024}"

sh RX.sh

0.117188

 

7) 同理,可以使用腳本取到實時接收和實時發送的網速

vi Rb.sh

輸入以下內容

RX0=$(ifconfig eth0 |grep bytes | awk '{print $2}' | awk -F ":" '{print $2}')

TX0=$(ifconfig eth0 |grep bytes | awk '{print $6}' | awk -F ":" '{print $2}')

sleep 1s

RX1=$(ifconfig eth0 |grep bytes | awk '{print $2}' | awk -F ":" '{print $2}')

TX1=$(ifconfig eth0 |grep bytes | awk '{print $6}' | awk -F ":" '{print $2}')

awk "BEGIN{print ($RX1-$RX0)/1024}" ; awk "BEGIN{print ($TX1-$TX0)/1024}"

sh Rb.sh

97.0039

11547.2

這是我從客戶端下載該設備上文件時,得出的網速,接收97.0039KB/s,發送11547.2 KB/s

Copyright © Linux教程網 All Rights Reserved