LINUX下的流量监控shell脚本

 更新时间:2014年04月01日 11:20:09   作者:  
这篇文章主要介绍了LINUX下的流量监控shell脚本,可以适用任何Linux版本,需要的朋友可以参考下
最近比较忙,好久没更新博客了,今天刚好不忙写了一个流量监控脚本.测试在centos下已通过,有需要的朋友可以试试,有BUG或者需要添加其他功能话可以留言哦.

一、脚本源码
# vi /etc/rc.d/traffic_monitor.sh
----------------------------------------------
复制代码 代码如下:
#!/bin/bash
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin;
export PATH
function traffic_monitor {
  # 系统版本
  OS_NAME=$(sed -n '1p' /etc/issue)
  # 网口名
  eth=$1
  #判断网卡存在与否,不存在则退出
  if [ ! -d /sys/class/net/$eth ];then
      echo -e "Network-Interface Not Found"
      echo -e "You system have network-interface:\n`ls /sys/class/net`"
      exit 5
  fi
  while [ "1" ]
  do
    # 状态
    STATUS="fine"
    # 获取当前时刻网口接收与发送的流量
    RXpre=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $2}')
    TXpre=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $10}')
    # 获取1秒后网口接收与发送的流量
    sleep 1
    RXnext=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $2}')
    TXnext=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $10}')
    clear
    # 获取这1秒钟实际的进出流量
    RX=$((${RXnext}-${RXpre}))
    TX=$((${TXnext}-${TXpre}))
    # 判断接收流量如果大于MB数量级则显示MB单位,否则显示KB数量级
    if [[ $RX -lt 1024 ]];then
      RX="${RX}B/s"
    elif [[ $RX -gt 1048576 ]];then
      RX=$(echo $RX | awk '{print $1/1048576 "MB/s"}')
      $STATUS="busy"
    else
      RX=$(echo $RX | awk '{print $1/1024 "KB/s"}')
    fi
    # 判断发送流量如果大于MB数量级则显示MB单位,否则显示KB数量级
    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 "==================================="
    echo -e "Welcome to Traffic_Monitor stage"
    echo -e "version 1.0"
    echo -e "Since 2014.2.26"
    echo -e "Created by showerlee"
    echo -e "BLOG: http://www.showerlee.com"
    echo -e "==================================="
    echo -e "System: $OS_NAME"
    echo -e "Date:   `date +%F`"
    echo -e "Time:   `date +%k:%M:%S`"
    echo -e "Port:   $1"
    echo -e "Status: $STATUS"
    echo -e  " \t     RX \tTX"
    echo "------------------------------"
    # 打印实时流量
    echo -e "$eth \t $RX   $TX "
    echo "------------------------------"
    # 退出信息
    echo -e "Press 'Ctrl+C' to exit"
  done
}
# 判断执行参数
if [[ -n "$1" ]];then
  # 执行函数
  traffic_monitor $1
else
  echo -e "None parameter,please add system netport after run the script! \nExample: 'sh traffic_monitor eth0'"
fi

----------------------------------------------
二、执行效果
复制代码 代码如下:
# sh traffic_monitor.sh eth0


相关文章

  • Linux自定义防误删脚本的思路与测试

    Linux自定义防误删脚本的思路与测试

    相信很多朋友都遇到过在linux下误删除文件的时候,此刻的心中仿佛有无数的羊驼在奔腾,下面这篇文章主要给大家介绍了关于Linux自定义防误删脚本的思路与测试的相关资料,需要的朋友可以参考下
    2021-09-09
  • linux下解决 git clone每次都要输入用户名密码问题(推荐)

    linux下解决 git clone每次都要输入用户名密码问题(推荐)

    这篇文章主要介绍了linux下解决 git clone每次都要输入用户名密码问题,先用git config --global user.name 'username’和git config --global user.email 'xxx@xxx.com’配置一下用户名和邮箱,本文给大家介绍的非常详细,需要的朋友可以参考下
    2022-10-10
  • linux环境下编写shell脚本实现启动停止tomcat服务的方法

    linux环境下编写shell脚本实现启动停止tomcat服务的方法

    这篇文章主要介绍了linux环境下编写shell脚本实现启动停止tomcat服务的方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-06-06
  • Shell脚本定义变量和重新赋值

    Shell脚本定义变量和重新赋值

    这篇文章主要介绍了Shell脚本定义变量和重新赋值,以及变量命名规则,需要的朋友可以参考下
    2014-07-07
  • 很实用的Linux 系统运维常用命令及常识(超实用)

    很实用的Linux 系统运维常用命令及常识(超实用)

    作为Linux运维,需要了解Linux操作系统的基本使用和管理知识,下面脚本之家小编给大家介绍下Linux运维需要掌握的命令,想成为Linux运维的朋友可以来学习一下
    2016-10-10
  • 利用expect命令实现Shell自动化交互的方法详解

    利用expect命令实现Shell自动化交互的方法详解

    我们通过Shell可以实现简单的控制流功能,如:循环、判断等。下面这篇文章主要给大家介绍了关于利用expect命令实现Shell自动化交互的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-12-12
  • 提高你工作效率的shell命令总结大全

    提高你工作效率的shell命令总结大全

    脚本语言可以减少很多手动的操作,作为一个Linux程序员都应该了解简单的脚本编写来代替手动的操作,下面这篇文章主要给大家总结分享了一些提高你工作效率的shell命令,文中给出了详细的示例代码供大家参考学习,需要的朋友们下面来一起看看吧。
    2017-07-07
  • Shell字符串截取的实现方法(非常详细)

    Shell字符串截取的实现方法(非常详细)

    这篇文章主要介绍了Shell字符串截取的实现方法(非常详细),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • @echo off的作用详解

    @echo off的作用详解

    本文主要介绍了@echo off的作用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • 执行Shell脚本的4种方法及区别介绍

    执行Shell脚本的4种方法及区别介绍

    这篇文章主要介绍了执行Shell脚本的4种方法及区别介绍,本文讲解了相对路径方式、绝对路径方式、bash命令调用、相对或绝对方式以及说下几种方式的区别,需要的朋友可以参考下
    2015-05-05

最新评论