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 显示那一时刻的数据)