2018-09-05 一个实时监听网络的流量的工具

首先放代码如下所示

#!/bin/bash

cp /proc/net/dev tmp_dev1
sed -i '1,2d' tmp_dev1
while(true);do
    sleep 1
    cp /proc/net/dev tmp_dev2
    sed -i '1,2d' tmp_dev2
    clear
    echo "*************************************************************************"
    awk 'NR==FNR{a[$1]=$2+$9} NR!=FNR{a[$1]=a[$1]-$2-$9} END{for(i in a) printf("%-15s current speed is %.2f Mb/s %.2f kb/s \n", i, a[i]/1024/1024, a[i]/1024)}' tmp_dev2 tmp_dev1
    echo "*************************************************************************"
    mv -f tmp_dev2 tmp_dev1
done

结果如下所示:

*************************************************************************
tunl0:          current speed is 0.00 Mb/s 0.00 kb/s 
eth0:           current speed is 0.00 Mb/s 0.00 kb/s 
ip6tnl0:        current speed is 0.00 Mb/s 0.00 kb/s 
lo:             current speed is 0.00 Mb/s 0.00 kb/s 
*************************************************************************

所需知识要点

Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取proc文件时,proc文件系统是动态从系统内核读出所需信息并提交的。/proc文件系统中包含了很多目录,其中/proc/net/dev 保存了网络适配器及统计信息。

root@803e41ac5ea4:~/tes# 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: 26249010   18636    0    0    0     0          0         0   409951    7300    0    0    0     0       0          0
 tunl0:       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
    lo:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0

最左边的表示接口的名字,Receive表示收包,Transmit表示发送包;

  • bytes表示收发的字节数;
  • packets表示收发正确的包量;
  • errs表示收发错误的包量;
  • drop表示收发丢弃的包量;

则数据流量速度取得是发送和接收的字节数的量。取的间隔1s计算一次。

流程图如下

待更新。。。。。。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 11,146评论 0 10
  • feisky云计算、虚拟化与Linux技术笔记posts - 1014, comments - 298, trac...
    不排版阅读 9,347评论 0 5
  • 如果你看完书中的所有例子,你很可能已经做完你的实验和在已经越狱的iPhone上的研究。因为和许多人一样,几乎所有的...
    fishmai0阅读 16,910评论 2 42
  • Linux系统一般有4个主要部分:内核、shell、文件系统和应用程序。 内核、shell和文件系统一起形成了基本...
    请爱护小动物阅读 8,051评论 0 22
  • 了解专业:真是不了解不知道,一了解吓一跳,我上大学之前那对财务管理这个专业真的是一点也没有了解,而且也不知道其实其...
    财一滕琼瑶阅读 3,126评论 0 0