Shell之监控cpu、内存、磁盘脚本


#!/bin/bash

#获取内存情况

mem_total=`free | awk 'NR==2{print $2}'`  #获取内存总大小
mem_use=`free  | awk 'NR==2{print $3}'`  #获取内存使用大小

#统计内存使用率 (使用大小/总大小)

mem_use_rate=`awk 'BEGIN{print('$mem_use'/'mem_total')*100}'`

#echo $mem_use_rate

#获取磁盘使用率
disk_use_rate=`df -h | grep /dev/vda1 | awk -F '[ %]+' '{print $5}'`

#echo $disk_use_rate

#获取cpu使用率
cpu_use_rate=`top -n 1 | grep Cpu |awk '{print $2}'`

#echo $cpu_use_rate

#报警时间
file_log=/home/error.log  #提前创建
now_time=`date '+%F %T'`

function send_mail(){

        mail -s "监控报警"      *******@qq.com < /home/error.log
}

function check(){

        if [[ "men_use_rate" > 80 ]] || [[ "disk_use_rate" > 5 ]] || [[ "cpu_use_rate" > 50 ]];then   
                echo "报警时间:"$now_time > $file_log
                echo "cpu使用率:${cpu_use_rate}% --> 磁盘使用率:${disk_use_rate}% --> 内存使用率:${men_use_rate}"
                send_mail
        fi
}

function main(){
        check
}
main

操作系统:centos7.5 上面获取的数据显示34,相当于34%  报警部分可根据情况自己写上面用的是sendmail(阿里云服务器上有限制,鼓捣半天才发现需要开通,好像还收费,果断放弃)

free

df -h

top -n 1 (top是实时监控,-n 1 显示那一时刻的数据)

优质内容筛选与推荐>>
1、#专题练习# 网络流
2、open and check port
3、jvm相关设置
4、团队作业(1)
5、shell提示符显示git当前分支


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号