zoukankan      html  css  js  c++  java
  • 利用shell监控cpu、磁盘、内存使用率

    利用shell监控cpu、磁盘、内存使用率,达到警报阈值发邮件进行通知

    并配合任务计划,即可及时获取报警信息

    #!/bin/bash
    ##############################################
    #Author: Liuzhengwei - 1135960569@qq.com
    #QQ:1135960569
    #Last modified: 2017-04-19 21:50
    #Filename: jiankong.sh
    #Description: 
    ##############################################
    #获取cpu使用率
    cpuUsage=`top -n 1 | awk -F ‘[ %]+‘ ‘NR==3 {print $2}‘`
    #获取磁盘使用率
    data_name="/dev/vda1"
    diskUsage=`df -h | grep $data_name | awk -F ‘[ %]+‘ ‘{print $5}‘`
    logFile=/tmp/jiankong.log
    #获取内存情况
    mem_total=`free -m | awk -F ‘[ :]+‘ ‘NR==2{print $2}‘`
    mem_used=`free -m | awk -F ‘[ :]+‘ ‘NR==3{print $3}‘`
    #统计内存使用率
    mem_used_persent=`awk ‘BEGIN{printf "%.0f
    ",(‘$mem_used‘/‘$mem_total‘)*100}‘`
    #获取报警时间
    now_time=`date ‘+%F %T‘`
    function send_mail(){
            mail -s "监控报警" 1135960569@qq.com < /tmp/jiankong.log
    }
    function check(){
            if [[ "$cpuUsage" > 80 ]] || [[ "$diskUsage" > 80 ]] || [[ "$mem_used_persent" > 80 ]];then
                    echo "报警时间:${now_time}" > $logFile
                    echo "CPU使用率:${cpuUsage}% --> 磁盘使用率:${diskUsage}% --> 内存使用率:${mem_used_persent}%" >> $logFile
                    send_mail
            fi
    }
    function main(){
            check
    }
    main
  • 相关阅读:
    搭建本地源
    shell中tar加密打包
    mysql出现ERROR 1819 (HY000)的解决方法
    mysql 创建用户及授权(2)
    mysql 创建用户及授权(1)
    Redis 工具 redis-port 使用
    mysql中 drop、truncate和delete的区别
    dlerror和dlclose用法
    dlsym用法
    dlopen用法
  • 原文地址:https://www.cnblogs.com/grimm/p/6738527.html
Copyright © 2011-2022 走看看