绿茶系统官网 网站地图| TAG标签| RSS订阅| 加入收藏

Linux用shell脚本统计高速互联网流量的步骤

Linux用shell脚本统计高速互联网流量的步骤
更新时间:2024-12-31 18:34 系统大小: 系统类型:其他教程
授权方式: 系统语言: 系统位数:
系统品牌: 系统版本:

安全检测:

推荐星级:

详细介绍

在Linux系统操作中,可用工具监控互联网流量,但对高速互联网的监控有肯定的局限性,对于高速互联网流量的监控可用shell脚本,下面记者就给大伙介绍下Linux用shell脚本监控高速互联网流量的办法。

在本文中大家介绍一种简单的Shell 脚本,它可以监控互联网流量而且不依靠于缓慢的libpcap库。这类脚本支持Gb以上规模的高速互联网接口,假如你对汇聚型的互联网流量有兴趣的话,它们可统计每一个互联网接口上的流量。

脚本主如果基于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: 传输包数据包降低的数据量

这类数据会依据内核数据发生变更的时候自动刷新。因此,你可以撰写一系列的脚本进行剖析并计算流量统计。下面就是如此的脚本(感谢 joemiller 提供)。第一个脚本是统计每秒数据量,包括接收(RX)或发送(TX)。而后面的则是一个描述互联网传输中的接收(RX)发送(TX)带宽。这类脚本中安装无需任何的工具。

测量网口每秒数据包:

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

下载地址