Linux使用shell脚本监控高速网络流量的方法
来源:才华咖 本文已影响1.06W人
来源:才华咖 本文已影响1.06W人
在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” # 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” # 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
下面的屏幕截图显示了上面的两个脚本的输出。
上面就是Linux使用shell脚本监控高速网络流量的方法介绍了,使用这些脚本能够统计出每个网络接口的流量,将其生成监控报告。
安装和使用Linux CURL的方法
十个Linux bash shell小技巧
如何用C语言写一个简单的Unix Shell
linux shell编程的简介
linux shell编程变脸赋值和字符串操作
PHP脚本修改Linux或Unix系统口令方法
2016年Linux认证考试要点:shell程序控制结构语句
Linux Shell文本处理工具汇总篇
Linux安装和使用Glances的方法介绍
Linux系统中smbclient命令的使用方法
Linux Shell文本处理工具
使用python实现Linux异步epoll的代码
Linux shell常用命令汇总
如何用Linux操作系统批量建立用户的shell
Linux系统shell工具打印输出
Should Euthanasia Be Legalized英语作文
在EXCEL表格中使用SLN函数方法有哪些
Zend studio for eclipse中使php可以调用mysql相关函数的设置方
Excel中SMALL函数实例使用方法
Linux中Firefox如何安装Flash插件
Linux下如何编写第一个C语言hello world程序
如何用Windows通过网络安装RedHat Linux
How to Learn English Well 如何学好英语作文(通用6篇)
监控网络维修合同范本
php中allow-url-include的应用分析
网络求职实现快速高效
Excel中SMALL函数实例使用方法介绍
Linux中如何高效编写Bash脚本
Linux Mint Cinnamon下使用vino-server配置桌面共享的方法
linux系统下sudo命令使用方法
网络安全监督方案
Linux自动备份MySQL数据库的实用方法
Help others is helping ourselves英语作文
在Linux系统中使用lsof命令的教程
红旗Linux系统配置LILO文件的方法
如何在Linux中使用GNU sed
快速入睡的方法The Ways to Get Sleep Quickly高中英语作文
Excel表中文本DOLLAR函数使用方法
收费高速公路网络入口流量控制的研究
Linux的free命令使用方法