磁盘,内存,cpu巡检脚本
在售后运维中,经常会出现某个进程停了,检查发现是磁盘满了造成,因此编写一个简单的巡检脚本,对磁盘,内存,cpu进行简单的巡检,可以设置crontab定时运行这个脚本,超过自定义阈值进行邮件提醒。
提前在服务端安装mailx包,配置这个/etc/mail.rc,在最下面添加
set from=379534764@qq.com //邮件的发送方,自定义
set smtp=smtp.qq.com
set smtp-auth-user=379534764@qq.com //自定义
set smtp-auth-password=授权码 //需要开启POP3/IMAP/SMTP服务才能进行查看
set smtp-auth=login

#!/bin/bash
#自定义日志名称和路径,会将结果记录到服务器日志里
log=~/check_log
#检查是否存在这个目录,不存在才创建
if [ ! -d =$log ];then
touch $log
fi
#记录当前时间
echo "巡检开始,时间:"`date +"%F %T"` >>$log
#检查磁盘使用率对大的值,并输出到日志中
disk_size=$(df|grep '/'|tr -s ' ' %|cut -d% -f5|sort -nr|head -1)
echo "磁盘空间已经使用了$disk_size%" >>$log
#检查内存目前剩余百分比,并输出到日志中
let mem_size=$(free | awk '/Mem/{print $4}')/1024
echo "内存大小剩余$mem_size"M"" >>$log
#检查CPU目前使用百分比
cpu_size=$(mpstat | awk '/all/{print $3}')
echo -e "cpu使用率为$cpu_size\n" >>$log
#如果磁盘使用率大于77%或者内存大小剩余小于3M或者cpu使用率大于0.50就会发送邮件告警提醒
if [[ $disk_size -ge 77 || $mem_size -le 3072 || $cpu_size -ge 0.50 ]]; then
mail -s "Warning" 379534764@qq.com <<EOF
Insufficient resources,资源不足
磁盘空间已经使用了$disk_size%
内存大小剩余$mem_size M
cpu使用率为$cpu_size
EOF
fi
运行结果:

浙公网安备 33010602011771号