监控流量shell脚本

# 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

时间: 2024-10-17 23:42:43

监控流量shell脚本的相关文章

linux下利用curl监控网页shell脚本

#!/bin/bash smail() {mail -s "$1" [email protected] <<EOF$1$2====report time: `date +"%F %T"`current user: `whoami`shell script: `echo $0`====EOF} ssms() {/usr/local/feixin/fetion --mobile=150000000 --pwd=******** --to=1381000000

mysql监控常用shell脚本

#/bin/sh #检测mysql server是否正常提供服务 mysqladmin -u sky -ppwd -h localhost ping #获取mysql当前的几个状态值 mysqladmin -u sky -ppwd -h localhost status #获取数据库当前的连接信息 mysqladmin -u sky -ppwd -h localhost processlist #获取当前数据库的连接数 mysql -u root -p123456 -BNe "select ho

监控NTP Shell脚本

[[email protected] /]# cat /home/monitorntp.sh #!/bin/bash # 进程名 proc_name='ntpd -u' # 日志文件 file_name="/home/logs/ntpd.log" pid=0 # 计算进程数 proc_num() { num=`ps -ef | grep "$proc_name" | grep -v grep | wc -l` return $num } # 进程号 proc_id(

测试网卡流量shell脚本

#!/bin/bashfunction usage{        echo "use ./test_net.sh ethX time"        echo "$1 is you network interface "        echo "$2 is the last time!"        echo "for example: ./test_net.sh eth0 2"        exit 100} if

8个DBA最常用的监控Oracle数据库的常用shell脚本

本文介绍了8个常用的监控数据shell脚本.首先回顾了一些DBA常用的Unix命令,以及解释了如何通过Unix Cron来定时执行DBA脚本.网上也有好多类似的文章,但基本上都不能正常运行,花点时间重新整理了下,以后就能直接使用了. 一.同时文章还介绍了8个重要的脚本来监控Oracle数据库: 1.检查实例的可用性 2.检查监听器的可用性 3.检查alert日志文件中的错误信息 4.在存放log文件的地方满以前清空旧的log文件 5.分析table和index以获得更好的性能 6.检查表空间的使

shell脚本中的dat,计算器,内置变量的用法

什么是shell脚本.首先它是一个脚本,并不能作为正式的编程语言.因为是跑在linux的shell中,所以叫shell脚本.说白了,shell脚本就是一些命令的集合.举个例子,我想实现这样的操作: 1)进入到/tmp/目录: 2)列出当前目录中所有的文件名: 3)把所有当前的文件拷贝到/root/目录下: 4)删除当前目录下所有的文件. 简单的4步在shell窗口中需要你敲4次命令,按4次回车.这样是不是很麻烦?所以不妨把所有的操作都记录到一个文档中,然后去调用文档中的命令,这样一步操作就可以完

linux shell脚本简单编程

文章转自:http://www.92csz.com/study/linux/14.htm 到现在为止,你明白什么是shell脚本吗?如果明白最好了,不明白也没有关系,相信随着学习的深入你就会越来越了解到底什么是shell脚本.首先它是一个脚本,并不能作为正式的编程语言.因为是跑在linux的shell中,所以叫shell脚本.说白了,shell脚本就是一些命令的集合.举个例子,我想实现这样的操作:1)进入到/tmp/目录:2)列出当前目录中所有的文件名:3)把所有当前的文件拷贝到/root/目录

复习shell脚本

什么是shell脚本.首先它是一个脚本,并不能作为正式的编程语言.因为是跑在linux的shell中,所以叫shell脚本.说白了,shell脚本就是一些命令的集合.举个例子,我想实现这样的操作: 1)进入到/tmp/目录: 2)列出当前目录中所有的文件名: 3)把所有当前的文件拷贝到/root/目录下: 4)删除当前目录下所有的文件. 简单的4步在shell窗口中需要你敲4次命令,按4次回车.这样是不是很麻烦?当然这4步操作非常简单,如果是更加复杂的命令设置需要几十次操作呢?那样的话一次一次敲

nagios监控流量脚本

需求是我们需要对服务器上的流量进行监控,网络上有个流传的check_traffic.sh,它需要被监控机开启snmp.但是感觉都使用上了nagios还要开snmp...有点斧子剪刀一起用的感觉,所以就动手写了个监控流量的shell: #!/bin/sh usage() { echo "Usage: $0 [-n <eth0>] [-w <tx rx>] [-c <tx rx>]" 1>&2; exit 1; } foundw=0; fo