zoukankan      html  css  js  c++  java
  • 实时流量监控脚本

    #!/bin/bash
    
    ethn=$1
    
    while true
    do
      RX_pre=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{print $2}')
      TX_pre=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{print $10}')
      sleep 1
      RX_next=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{print $2}')
      TX_next=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{print $10}')
    
      clear
      echo -e "	 RX `date +%k:%M:%S` TX"
    
      RX=$((${RX_next}-${RX_pre}))
      TX=$((${TX_next}-${TX_pre}))
    
      if [[ $RX -lt 1024 ]];then
        RX="${RX}B/s"
      elif [[ $RX -gt 1048576 ]];then
        RX=$(echo $RX | awk '{print $1/1048576 "MB/s"}')
      else
        RX=$(echo $RX | awk '{print $1/1024 "KB/s"}')
      fi
    
      if [[ $TX -lt 1024 ]];then
        TX="${TX}B/s"
      elif [[ $TX -gt 1048576 ]];then
        TX=$(echo $TX | awk '{print $1/1048576 "MB/s"}')
      else
        TX=$(echo $TX | awk '{print $1/1024 "KB/s"}')
      fi
    
      echo -e "$ethn 	 $RX   $TX "
    
    done

    此脚本不需要额外再安装软件,并且可自定义欲查看接口,精确到小数,可根据流量大小灵活显示单位,默认采集间隔为1秒。

    用法为:

    1、将脚本保存为可执行脚本文件,比如叫net.sh。

    2、chmod +x ./net.sh 将文件改成可执行脚本。

    3、sh net.sh eth0即可开始监看接口eth0流量,按ctrl+c退出。

    脚本是通过读取运行时文件系统/proc/net/dev中的网络实时数据,并通过简单计算得到的。关于目录/proc/net/dev,请参考下文。

  • 相关阅读:
    SpringMVC(一)
    Mybatis二(高级部分)
    Mybatis一(基础)
    泛型
    itcast-Hibernate orm元数据和 关系操作
    自动装箱自动拆箱,基本数据类型
    struts2 中的数据访问servletAPI
    Hibernate 查询
    itcast-ssh-crm实践
    final修饰符(2)
  • 原文地址:https://www.cnblogs.com/gaoyuechen/p/8675393.html
Copyright © 2011-2022 走看看