【shell要求】
用shell写一个内存监控脚本,使用超过80%并发邮件告警
【shell思路】
1、思路:free
free -m
total used free shared buff/cache available
Mem: 3770 219 3170 11 381 3325
Swap: 2047 0 2047
##Mem:内存的使用情况总览表。
##totel:机器总的物理内存 单位为:M
##used:用掉的内存。
##free:空闲的物理内存。
2、算取百分比
3、比对做出判断
[root@localhost ~]# vi test.sh
#!/bin/bash
i=1
while [ $i=1 ] //如果i=1的时候开始以下循环操作
do
a=`free -m | grep "Mem" |awk '{print $2}'` //取出物理内存总值
b=`free -m | grep "Mem" |awk '{print $3}'` // 取出使用的值
let c=$b*100/$a //这边有一点需要注意机器只能识别1以上的值,所以一定要先乘以100然后在除以内存总值,否则系统识别不出来,小于整数的值就进行四舍五入
#echo "目前内存使用率$c%"
if [ $c -gt 80 ]; then //如果大于80
/opt/sendEmail.sh 1255382006@qq.com //发送邮件的脚本在上篇文章中有写,想了解的可以去看看
fi
sleep 20 //20秒发送一次
done
[root@localhost ~]# chmod +x test.sh //给文件一个执行的权限
[root@localhost ~]# ./test.sh // 开始执行该脚本