服务器监控邮件报警(cpu,磁盘,内存)

1、安装mailx

yum install -y mailx
vim /etc/mail.rc

添加以下内容

set ssl-verify=ignore
set from=123456@qq.com
set smtp=smtp.qq.com
set smtp-auth-user="123456@qq.com"
set smtp-auth-password="xxxx" #去qq邮箱生成授权码(16位授权码)
set smtp-auth=login

2、测试

echo “邮件内容”|mail -s 标题 123456@qq.com

如果你可以收到邮件,说明你的mailx配置成功

3、写脚本

vim watch.sh

#!/bin/bash

#for IP in `cat /data/sh/test.txt`
#ssh root@192.168.1.56

date=`date +%Y-%m-%d.%H:%M`
ip=`ifconfig em1 | grep "netmask" | awk '{printf $2}'`

#磁盘监控,这里不监控扩展盘

disk_use=`df -h | grep "/dev/mapper/centos-home" | awk '{printf $5}' | cut -d '%' -f 1`

if [ $disk_use -ge 90 ];then

echo -e "服务器IP地址: $ip \n时间: $date \n磁盘使用率为: $disk_use%" | mail -v -s "警告!!!" 1@qq.com

fi

#cpu监控

cpu_average=`top -b -n 1 | grep "load" | awk '{printf $10 $11 $12}'`

cpu_use=`top -b -n 1 | grep "Cpu" | awk '{printf $2}' | cut -d "." -f 1`

if [ $cpu_use -ge 90 ];then

echo -e "服务器IP地址 :$ip \n时间: $date \nCPU 使用率为: $cpu_use%" | mail -v -s "警告!!!" 1@qq.com

fi

#内存监控

free_use=`free | awk '/Mem/{print $4/1024000}' | cut -d "." -f 1`
men_use=`free | awk '/Mem/{printf("%.2f\n"), $3/$2*100}' | cut -d "." -f 1`

if [ $men_use -ge 80 ];then

echo -e "服务器IP地址: $ip \n时间: $date \n内存使用率为: $men_use%" | mail -v -s "警告!!!" 1@qq.com

elif [ $free_use -le 50 ];then

echo -e "服务器IP地址: $ip \n时间: $date \n剩余空闲内存为: $free_use G" | mail -v -s "警告!!!" 1@qq.com

fi

 

4、添加到任务计划里

crontab -e

每天八点半执行脚本

30 8 * * * source /data/sh/watch.sh

:wq

保存退出

 

 5、展示邮件内容

 

 

嘻嘻~  成功了~

注意哦

凡有我QQ号者

可凭我的QQ号到附近超市

领取冰淇淋三箱和旺仔三箱

领取方式比较简单

直接拿起就跑不要停留

 

posted @ 2021-06-09 10:04  宝英姐姐  阅读(353)  评论(1编辑  收藏  举报