如何在Linux下统计高速网络中的流量.doc

上传人:白大夫 文档编号:3426496 上传时间:2019-08-24 格式:DOC 页数:5 大小:23.50KB
返回 下载 相关 举报
如何在Linux下统计高速网络中的流量.doc_第1页
第1页 / 共5页
亲,该文档总共5页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《如何在Linux下统计高速网络中的流量.doc》由会员分享,可在线阅读,更多相关《如何在Linux下统计高速网络中的流量.doc(5页珍藏版)》请在三一文库上搜索。

1、如何在Linux下统计高速网络中的流量在Linux中有很多的流量监控工具,它们可以监控、分类网络流量,以花哨的图形用户界面提供实时流量分析报告。大多数这些工具(例如:ntopng,iftop)都是基于libpcap库的 ,这个函数库是用来截取流经网卡的数据包的,可在用户空间用来监视分析网络流量。尽管这些工具功能齐全,然而基于libpcap库的流量监控工具无法处理高速(Gb以上)的网络接口,原因是由于在用户空间做数据包截取的系统开销过高所致。在本文中我们介绍一种简单的Shell 脚本,它可以监控网络流量而且不依赖于缓慢的libpcap库。这些脚本支持Gb以上规模的高速网络接口,如果你对“汇聚型”

2、的网络流量感兴趣的话,它们可统计每个网络接口上的流量。脚本主要是基于sysfs虚拟文件系统,这是由内核用来将设备或驱动相关的信息输出到用户空间的一种机制。网络接口的相关分析数据会通过“/sys/class/net/statisTIcs”输出。举个例子,eth0的网口上分析报告会输出到这些文件中:/sys/class/net/eth0/staTIsTIcs/rx_packets:收到的数据包数据/sys/class/net/eth0/staTIstics/tx_packets:传输的数据包数量/sys/class/net/eth0/statistics/rx_bytes:接收的字节数/sys/c

3、lass/net/eth0/statistics/tx_bytes:传输的字节数/sys/class/net/eth0/statistics/rx_dropped:当收到包数据包下降的数据量/sys/class/net/eth0/statistics/tx_dropped:传输包数据包下降的数据量这些数据会根据内核数据发生变更的时候自动刷新。因此,你可以编写一系列的脚本进行分析并计算流量统计。下面就是这样的脚本(感谢joemiller提供)。第一个脚本是统计每秒数据量,包含接收(RX)或发送(TX)。而后面的则是一个描述网络传输中的接收(RX)发送(TX)带宽。这些脚本中安装不需要任何的工具。

4、测量网口每秒数据包:123456789101112131415161718192021222324252627#!/bin/bashINTERVAL=1# update interval in secondsif -z $1 ; thenechoecho usage: $0 network-interfaceechoecho e.g. $0 eth0echoecho shows packets-per-secondexitfiIF=$1while truedoR1=cat /sys/class/net/$1/statistics/rx_packetsT1=cat /sys/class/net/

5、$1/statistics/tx_packetssleep $INTERVALR2=cat /sys/class/net/$1/statistics/rx_packetsT2=cat /sys/class/net/$1/statistics/tx_packetsTXPPS=expr $T2 - $T1RXPPS=expr $R2 - $R1echo TX $1: $TXPPS pkts/s RX $1: $RXPPS pkts/sdone网络带宽测量12345678910111213141516171819202122232425262728#!/bin/bashINTERVAL=1# upd

6、ate interval in secondsif -z $1 ; thenechoecho usage: $0 network-interfaceechoecho e.g. $0 eth0echoexitfiIF=$1while truedoR1=cat /sys/class/net/$1/statistics/rx_bytesT1=cat /sys/class/net/$1/statistics/tx_bytessleep $INTERVALR2=cat /sys/class/net/$1/statistics/rx_bytesT2=cat /sys/class/net/$1/statistics/tx_bytesTBPS=expr $T2 - $T1RBPS=expr $R2 - $R1TKBPS=expr $TBPS / 1024RKBPS=expr $RBPS / 1024echo TX $1: $TKBPS kb/s RX $1: $RKBPS kb/sdone下面的屏幕截图显示了上面的两个脚本的输出。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1