前言

Linux的一切都记录在案的哲学使我们很容易获得很多信息。

/proc/net/dev这个文件就是存放网络适配器及统计信息的途径,可以通过这个文件来统计我们服务器的流量信息。


/proc/net/dev

这个文件的权限是0444,这就意味着只要使用普通用户就可以获取到网卡的流量信息了。

内容:cat /proc/net/dev

Inter-| Receive | Transmit

face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed

lo: 480 8 0 0 0 0 0 0 480 8 0 0 0 0 0 0

wlp5s0: 19584992 18508 0 0 0 0 0 0 2309028 15850 0 0 0 0 0 0

enp4s0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

前面两行是标题信息,这些信息的统计都是从开机开始统计的:

Inter-face:网口名称

Receive:接受数据包的信息,即入口流量信息

Transmit:发送数据包的信息,即出口流量信息

bytes:表示发送数据包的总大小,即发送或者接口的总的流量大小(单位是字节,byte)

packets:表示数据包的个数,即发送或者接口数据包总的个数

errs:由设备驱动程序检测到的发送或接收错误的总数。

drop:设备驱动程序丢弃的数据包总数

fifo:FIFO缓冲区错误的数量

frame:分组帧错误的数量

colls:接口上检测到的冲突数

compressed:设备驱动程序发送或接收的压缩数据包数

multicast:设备驱动程序发送或接收的多播帧数

carrier:由设备驱动程序检测到的载波损耗的数量

获取流量统计:

cat /proc/net/dev | grep -v "|" | awk '{split($1,b,":");print b[1]" "$2" "$10 }'

lo 480 480

wlp5s0 20296158 3494371

enp4s0 0 0


总结

获取网口的流量的平均信息,可以根据时间间隔的流量差取平均值,就可以获取到了,监控的时候一般就是获取这个平均值进行监控。

相关推荐