您的位置:首页 > 运维架构 > Linux

Linux 下统计网卡的流量

2017-12-17 00:22 531 查看
1.原理

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: 传输包数据包下降的数据量

2.脚本

测量网口每秒数据包:

#!/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

        echo shows packets-per-second

        exit

fi

IF=$1

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

网络带宽测量

#!/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

3.dstat

安装 yum -y install dstat

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: