在linux下监控网卡流量的一个shell脚本,通过读取/proc/net/dev/中的数据,对网卡流量加以分析。
在linux中,可以使用命令 cat /proc/net/dev 获取网卡的当前信息。 我们要做的,就是按一定的时间间隔去读取流量信息,然后进行四则运算,得出想要的结果即可。 代码如下:
复制代码代码示例:
#!/bin/bash
if [ $# -lt 2 ]
eth=$1
in_old=$(cat /proc/net/dev | grep $eth | sed -e "s/\(.*\)\:\(.*\)/\2/g" | awk '{print $1 }')
while true
代码说明:
下面是该脚本在笔者电脑上的运行结果,自用的内网机器没啥流量,作个参考演示吧。 有关/proc/net/dev/中参数的说明,参考如下:
root@jbxue > cat /proc/net/dev
Inter- | Receive | Transmit face | bytes packets errs drop fifo frame compressed multicast | bytes packets errs drop fifo colls carrier compressed eth0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 eth1: 67437819880 552776948 0 0 0 0 0 6 63179118041 486899714 0 0 0 0 0 0 lo: 2338316682 34154992 0 0 0 0 0 0 2338316682 34154992 0 0 0 0 0 0 tunl0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 sit0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ip6tnl0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
参数说明: |