本文导读:
要查看linux服务器流量有点麻烦没那么直观与现成的方法,所以只能安装第三方或者使用shell命令分析网站日志。要查看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
下一篇:泥博客的百度收录量终于过千了