• 监控脚本


    #!/bin/bash
    #=================类nagios监控cpu使用情况/交换分区使用情况/根分区使用情况/用户登录情况=================

    #完成如下功能:

    #监控cpu的使用情况,当超过80%则警告

    #监控交换分区的使用情况,当超75%则警告

    #监控根分区的使用情况,当超过85%则警告

    #监控系统用户的登录情况,当超过5个则警告
    #=======================================================================================================

    #获取本服务器的IP地址
    IP=`ifconfig eth0|grep 'inet addr'|awk '{print $2}'|awk -F: '{print $2}'`

    #指定邮件地址
    mail_address=2348234@163.com

    #指定cpu空闲百分比的警告值
    cpu_free_warn=20

    #指定交换分区剩余百分比的警告值
    swap_warn=0.25

    #指定用户登录数的警告值
    user_count_warn=5

    #指定根分区磁盘使用百分比的警告值
    disk_used_warn=85


    #+++++++++++++++++++++++++++++++监控cpu的使用情况,当超过80%则警告++++++++++++++++++++++++++++++++++++++++++++++++++

    #取cpu的idle值(整数部分)
    cpu_idle=`top -b -n 1 | grep Cpu | awk '{print $5}' | cut -f 1 -d "."`

    #当前cpu使用超过80%(即剩余小于20%),立即发邮件告警
    if (($cpu_idle < $cpu_free_warn)); then
    echo "$IP服务器cpu剩余$cpu_idle%,使用率已经超过80%,请及时处理。" | mutt -s "$IP 服务器CPU告警" $mail_address
    fi

    #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    #-----------------------------监控交换分区的使用情况,当超75%则警告--------------------------------------------------

    #系统分配的交换分区总量
    swap_total=`free -m | grep Swap | awk '{print $2}'`

    #当前剩余的交换分区free大小
    swap_free=`free -m | grep Swap | awk '{print $4}'`

    #当前已使用的交换分区used大小
    swap_used=`free -m | grep Swap | awk '{print $3}'`

    #交换分区剩余百分比
    swap_per=0`echo "scale=2;$swap_free/$swap_total" | bc`

    #判断交换分区的剩余百分比是否小于警告值
    swap_now=`expr $swap_per < $swap_warn`

    #当小于警告值时,立即发邮件警告
    if [ $swap_now == 0 ];then
    echo "$IP服务器swap交换分区只剩下 $swap_free M 未使用,剩余不足20%,使用率已经超过80%,请及时处理。" | mutt -s "$IP 服务器内存告警" $mail_address
    fi
    #------------------------------------------------------------------------------------------------------------------------

    #.......................监控根分区的使用情况,当超过85%则警告.................................

    #取当前根分区(/dev/mapper/VolGroup-lv_root)已用的百份比值(只取整数部分)
    disk=`df -hP|grep '/dev/mapper/VolGroup-lv_root'|awk '{print $5}' | cut -f 1 -d "%"`

    #当根分取的使用超过85%时,立即发邮件警告
    if (($disk > $disk_used_warn));
    then
    echo "$IP 服务器 /根分区 使用率已经超过85%,请及时处理。" | mutt -s "$IP 服务器硬盘告警" $mail_address
    fi
    #.............................................................................................................


    #&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&监控系统用户的登录情况,当超过5个则警告&&&&&&&&&&&&&&&&&&&&&&&&&&&
    #取当前用户登录数
    users=`uptime | awk '{print $4}'`

    #当用户登录数超过5人,立即发邮件警告
    if (($users >= $user_count_warn));
    then
    echo "$IP 服务器用户数已经达到$users个,请及时处理。" | mutt -s "$IP 服务器用户数告警" $mail_address
    fi
    #&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

  • 相关阅读:
    linux之dup和dup2函数解析
    UNIX标准及实现
    UNIX基础知识
    HTML5学习笔记----html5与传统html区别
    c#设计模式-简单工厂
    c#设计模式-工厂模式
    MVC模式与三层架构的区别
    C# params传递多个参数
    SFC20 功能例子 注解
    工业以太网:十个核心基础概念
  • 原文地址:https://www.cnblogs.com/liujunjun/p/12141940.html
Copyright © 2020-2023  润新知