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

参考资料:

http://www.geekfan.net/5558/

http://blog.jobbole.com/23638/

http://www.csdn.net/article/2014-03-05/2818640-internet-of-things-blog

脚本主要是基于sysfs虚拟文件系统,这是由内核用来将设备或驱动相关的信息输出到用户空间的一种机制。网络接口的相关分析数据会通过“/sys/class/net/<ethX>/statistics”输出。

举个例子,eth0的网口上分析报告会输出到这些文件中:

/sys/class/net/eth0/statistics/rx_packets: 收到的数据包数据
/sys/class/net/eth0/statistics/tx_packets: 传输的数据包数量
/sys/class/net/eth0/statistics/rx_bytes: 接收的字节数
/sys/class/net/eth0/statistics/tx_bytes: 传输的字节数
/sys/class/net/eth0/statistics/rx_dropped: 收包时丢弃的数据包
/sys/class/net/eth0/statistics/tx_dropped: 发包时丢弃的数据包

netpps.sh---测量网口每秒数据包

#!/bin/bash

INTERVAL="1"  # update interval in seconds

if [ -z "$1" ]; then
     echo usage: $0 [network-interface]
     echo e.g. $0 eth0
     echo shows packets-per-second
     exit
fi

while true
do
     R1=`cat /sys/class/net/$1/statistics/rx_packets`
        T1=`cat /sys/class/net/$1/statistics/tx_packets`
        sleep $INTERVAL
        R2=`cat /sys/class/net/$1/statistics/rx_packets`
        T2=`cat /sys/class/net/$1/statistics/tx_packets`
        TXPPS=`expr $T2 - $T1`
        RXPPS=`expr $R2 - $R1`
        echo "TX $1: $TXPPS pkts/s RX $1: $RXPPS pkts/s"
done

netspeed.sh---网络带宽测量

#!/bin/bash

INTERVAL="1"  # update interval in seconds

if [ -z "$1" ]; then
        echo
        echo usage: $0 [network-interface]
        echo
        echo e.g. $0 eth0
        echo
        exit
fi

IF=$1

while true
do
        R1=`cat /sys/class/net/$1/statistics/rx_bytes`
        T1=`cat /sys/class/net/$1/statistics/tx_bytes`
        sleep $INTERVAL
        R2=`cat /sys/class/net/$1/statistics/rx_bytes`
        T2=`cat /sys/class/net/$1/statistics/tx_bytes`
        TBPS=`expr $T2 - $T1`
        RBPS=`expr $R2 - $R1`
        TKBPS=`expr $TBPS / 1024`
        RKBPS=`expr $RBPS / 1024`
        echo "TX $1: $TKBPS kb/s RX $1: $RKBPS kb/s"
done

时间: 2024-10-12 14:40:04

如何在Linux下统计高速网络中的流量的相关文章

如何在Linux下使用命令行嗅探HTTP流量

通常我们在调试Web应用.RESTFUL服务或者排错PAC (proxy auto config) 以及检查是否有恶意访问等会去通过错误日志日志或者嗅探数据包的方式去排错:常见的嗅探数据包软件有tcpdump.wireshark;但是针对HTTP需要对数据包进行过滤,显示格式也更不容易读,Httpry工具就能更方便易读的嗅探HTTP流量 安装httpry 基于Debian(Ubuntu or Linux Mint),基础库并没有httpry包,我们用源码来安装 1 2 3 4 5 $ sudo

如何在Linux下使用Rsync

如何在Linux下使用Rsync 吐槽 昨天对scp进行总结之后看到最后有说到Rsync,俗语有云:好奇心害死猫.抱着学习的态度将Rsync给找了出来,然后进行了一些简单的学习.下面介绍一些个常用的命令.上篇的scp:12个scp传输文件的栗子. 简介 rsync是类unix系统下的数据镜像备份工具——remote sync.一款快速增量备份工具 Remote Sync,远程同步 支持本地复制,或者与其他SSH.rsync主机同步. 对于各种组织和公司,数据对他们是最重要的,即使对于电子商务,数

linux下DHCP在企业网中的应用(DHCP中继)

linux下DHCP在企业网中的应用 一.环境要求 一台虚拟机 一个linux操作系统 两个windows操作系统 二.实验要求 企业网中一般有多个vlan,vlan之间需要相互通信,需要一个DHCP server去给其他vlan的主机动态分配ip地址. 三.实验拓扑及地址规划 拓扑图及地址规划如图所示: 四.实验步骤 ① 配置DHCP服务器,编辑dhcp的配置文件 route -n查看路由信息 vim /etc/dhcp/dhcpd.conf service dhcpd configtest

Linux下统计出现次数最多的指定字段值

假设桌面上有一个叫“data.txt”的文本,内容如下: {id='xxx' info='xxx' kk='xxx' target='111111' dd='xxx'}{id='xxx' info='xxx' kk='xxx' target='777' dd='xxx'}{id='xxx' info='xxx' kk='xxx' target='yyyy' dd='xxx'}{id='xxx' info='xxx' kk='xxx' target='5555' dd='xxx'}{id='xxx

Linux下基本的网络工具

Linux下基本的网络工具 Table of Contents ifconfig route ip dns 其他配置文件 ifconfig ifconfig eth0 up ifconfig eth0 down ifconfig eth0 192.168.10.111 永久 IP /etc/sysconfig/network-scripts/ifcfg-eth0 IPADDR=xxxx NETMASK=xxx GATEWAY=xxxxx PEERDNS={yes|no}: 表示是否接受 dhcp

linux下统计代码执行时间

转载自:http://velep.com/archives/973.html 统计函数或某一段代码的运行时间在软件开发中常常遇到.透过运行时间可分析出函数或程序段的运行效率和性能,从而有针对性的对代码进行优化. 在unix环境中,常常用binutils(GNU二进制工具集)中的gprof工具来查看函数运行时间.但本文的重点是自己编写代码实现函数或程序段运行时间的统计.下面进行详细描述. 实现原理 实现原理很简单,在函数或程序段开始运行前,记录开始时间.运行完成后,记录结束时间.把结束时间与开始时

如何在Linux下禁用IPv6

如何在Linux下禁用IPv6 echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6                            禁用IPv6(包括回环接口) echo 1 > /proc/sys/net/ipv6/conf/default/disable_ipv6                     禁用IPv6(默认) vim /etc/sysctl.conf                                    

如何在Linux下拷贝一个目录呢

cp -af newadmin/movie/.   uploadfile/mallvideo/ 如何在Linux下拷贝一个目录呢?这好像是再简单不过的问题了. 比如要把/home/usera拷贝到/mnt/temp,首先想到的就是 cp -R /home/usera/* /mnt/temp 但是这样有一个问题,/home/usera下的隐藏文件都不会被拷贝,子目录下的隐藏文件倒是会的. 那如何才是正确的方法呢?有人说用-a选项,有人说用find加管道. 其实没这么复杂,Google了之后,学了一

Linux下IP等网络配置

Linux下IP等网络配置: 我所知道一共三种方式,下面简单介绍(注意:网络配置必须”root管理员“登录才能进行配置). 一 1.首先在命令行输入[ifconfig]命令,可看到相关网络信息,其中”ethX“那块表示网卡信息,”lo“表示回路: 2.比如我电脑只有一个网卡,网卡为”eth0“,则直接输入[ifconfig eth0 10.3.43.53]命令进行配置即可,立即生效; 3.配置完后可输入[ifconfig]命令进行查看: 注意:此配置只会临时改变IP地址,重启计算机后还是会走原来