zoukankan      html  css  js  c++  java
  • 提取根分区磁盘占用率

    需求:

    1、编写sysmon.sh脚本
    (1)使用df命令提取出根分区的磁盘占用率,赋值给变量DUG。
    (2)使用mpstat命令提取CPU使用率(需安装sysstat软件包),赋值给变量CUG。
    (3)使用free命令提取出内存使用率,赋值给变量MUG。
    (4)判断上述监控项目是否超标,将需要告警的信息保存到/tmp/alert.txt文件。
    (5)判断/tmp/alert.txt文件是否存在,若存在则作为告警邮件发送。

      

     参考脚本:

    #!/bin/bash
    #脚本练习1
    
    #第一步、使用df命令提取出根分区的磁盘占用率,赋值给变量DUG
    DUG=`df -h |awk 'NR==2{print}'|awk '{print $5}'|awk -F '%' '{print $1}'`
    
    #第二步、使用mpstat命令提取CPU使用率(需安装sysstat软件包),赋值给变量CUG
    #(1)安装sysstat
    yum install wget make gcc gcc-c++ glibc libstdc++-devel mailx -y
    wget http://pagesperso-orange.fr/sebastien.godard/sysstat-11.0.0.tar.gz
    tar -xvf sysstat-11.0.0.tar.gz
    cd sysstat-11.0.0/
    ./configure
    make
    make install
    mpstat -V
    
    #判断sysstat软件是否安装成功
    if [ $? = 0 ];then
    echo "恭喜你sysstat 软件安装成功!"
    else
    exit
    fi
    
    #(2)提取CPU使用率
    CUG=`mpstat|grep 'all'|awk '{print $3}'`
    
    #第三步、使用free命令提取出内存使用率,赋值给变量MUG
    MUG=`free -m|grep 'Mem'|awk '{print $3}'`
    
    #第四步、判断上述监控项目是否超标,将需要告警的信息保存到/tmp/alert.txt文件
    #1.定义阈值
    if [ $DUG > 80 ];then
    echo "at `date`磁盘占用率已经达到${DUG}%,请及时清理" > /tmp/alert.txt
    elif [ $CUG > 50 ];then
    echo "at `date`CPU使用率达到${DUG}%,请及时查看" >> /tmp/alert.txt
    #第五步、判断/tmp/alert.txt文件是否存在,若存在则作为告警邮件发送
    if [ -e '/tmp/alert.txt' ];then
    mail -s '系统问题' 1557034472@qq.com < /tmp/alert.txt
    echo '' >/tmp/alert.txt #清空告警文件
    fi
  • 相关阅读:
    信号量Semaphore的使用
    Future和FutureTask
    阻塞队列和线程池
    Java多线程基础
    Java常用方法
    Scanner和BufferedReader的区别和用法
    QT学习笔记9:QTableWidget的用法总结
    WordPress 建站教程:新手搭建 WordPress个人博客图文教程(完全版)
    Let's do it
    jdk alternatives
  • 原文地址:https://www.cnblogs.com/tianfen/p/7800118.html
Copyright © 2011-2022 走看看