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;
foundc=0;
foundn=0;

for item in $@ ; do
    if [[ $foundn == 1 ]]; then
        n=$item;
        foundn=2;
        continue;
    fi
    if [[ $foundw == 1 ]]; then
        w1=$item;
        foundw=2;
        continue;
    fi
    if [[ $foundw == 2 ]]; then
        w2=$item;
        foundw=3;
        continue;
    fi
    if [[ $foundc == 1 ]]; then
        c1=$item;
        foundc=2;
        continue;
    fi
    if [[ $foundc == 2 ]]; then
        c2=$item;
        foundc=2;
        continue;
    fi
    if [[ "$item" == "-w" ]]; then
        foundw=1;
        continue;
    fi
    if [[ "$item" == "-c" ]]; then
        foundc=1;
        continue;
    fi
    if [[ "$item" == "-n" ]]; then
        foundn=1;
        continue;
    fi
done

if [ -z "${w1}" ] || [ -z "${w2}" ] || [ -z "${c1}" ] || [ -z "${c2}" ] || [ -z "${n}" ]; then
    usage
fi

R1=`cat /sys/class/net/$n/statistics/rx_bytes`
T1=`cat /sys/class/net/$n/statistics/tx_bytes`
sleep 1
R2=`cat /sys/class/net/$n/statistics/rx_bytes`
T2=`cat /sys/class/net/$n/statistics/tx_bytes`
TBPS=`expr $T2 - $T1`
RBPS=`expr $R2 - $R1`
TMBPS=`expr $TBPS / 1024 / 128`
RMBPS=`expr $RBPS / 1024 / 128`

if [[ $TMBPS -ge $c1 ]] || [[ $RMBPS -ge $c2 ]] ; then
    echo "Critical - current is ${TMBPS}, ${RMBPS}";
    exit 2;
fi
if [[ $TMBPS -ge $w1 ]] || [[ $RMBPS -ge $w2 ]] ; then
    echo "WARNING - current is ${TMBPS}, ${RMBPS}";
    exit 1;
fi
echo "OK - current is ${TMBPS}, ${RMBPS}";
exit 0;
复制代码

其中的w和c的数值单位都是Mb。



本文转自轩脉刃博客园博客,原文链接:http://www.cnblogs.com/yjf512/p/3704211.html,如需转载请自行联系原作者


相关文章
|
Java
Java 对象间关系(依赖、关联、聚合和组合)
面向对象设计 对象间关系:依赖、关联、聚合和组合,四种关系容易混淆。特别后三种,只是在语义上有所区别,所谓语义就是指上下文环境、特定情景等。 
1392 1
|
11月前
|
Java 编译器 开发者
Java中的this关键字详解:深入理解与应用
本文深入解析了Java中`this`关键字的多种用法
1713 9
|
BI Linux API
掌握 SkiaSharp 轻松实现 .NET 跨平台绘图
.NET 框架的发展,我们越来越多地寻求能够在多个平台上无缝运行的应用解决方案。
2089 2
|
测试技术 索引 Python
Python enumerate函数
Python enumerate函数
Python enumerate函数
|
XML Java Apache
Apache Flink自定义 logback xml配置
Apache Flink自定义 logback xml配置
492 0
|
监控 关系型数据库 MySQL
『Jmeter入门万字长文』 | 从环境搭建、脚本设计、执行步骤到生成监控报告完整过程
『Jmeter入门万字长文』 | 从环境搭建、脚本设计、执行步骤到生成监控报告完整过程
1039 2
|
存储 缓存 JavaScript
如何优化 JavaScript 性能:减少重绘与回流
优化 JavaScript 性能是前端开发中非常重要的课题。在本篇博客文章中,我将重点介绍如何减少重绘(Repaint)与回流(Reflow),以提高 JavaScript 在浏览器中的执行效率。我们将深入探讨导致重绘和回流的原因,并提供一些优化技巧和代码示例来改进性能。
439 0
|
边缘计算 Kubernetes 物联网
k3s 离线部署指南
k3s 离线部署指南
|
人工智能 自然语言处理 搜索推荐
写歌词的技巧和方法,写歌词的基本要求,歌词创作基本知识及注意事项,创作歌词的要点
我们平常在歌词创作的时候,会有意去注重一些基本原则,也会用心去研究:写歌词的技巧和方法,写歌词的基本要求,歌词创作基本知识及注意事项,创作歌词的要点。近年来,AI人工智能技术终于开始进入音乐歌词创作领域。AI音乐创作技术的出现是科技史上又一次巨大的进步,让音乐人更加轻松地创作出更好的音乐作品。在人工智能创作歌词领域,AI机器人小芝(aixiegeci)是一个快速创作原创歌词的软件应用。它甚至不需要你懂太多的音乐创作歌词知识,一个普通人也可以通过的操作就可以快速完成一首歌词作品的创作。
555 0
写歌词的技巧和方法,写歌词的基本要求,歌词创作基本知识及注意事项,创作歌词的要点

热门文章

最新文章