centos系统内存磁盘过高报警发送邮件到qq邮箱

文章目录

  • 一、不使用脚本执行步骤
    • 1、先关闭防火墙
    • 2、下载或更新邮件服务
    • 3、邮箱设置
    • 4、修改配置文件
    • 5、请求数字证书
    • 6、 测试邮件是否发送成功
    • 7、执行结果
  • 二、写入脚本执行

一、不使用脚本执行步骤

1、先关闭防火墙

systemctl  stop  firewalld

2、下载或更新邮件服务

yum  -y  install  mailx

3、邮箱设置

进入邮箱,先点自己的设置,点击账户

centos系统内存磁盘过高报警发送邮件到qq邮箱_第1张图片

开启pop3 smtp服务(此处会生成一个授权码,这个授权码先保存,后续需要,如果没保存,可以点击下面的生成授权码,发送短信即可生成授权码)

centos系统内存磁盘过高报警发送邮件到qq邮箱_第2张图片

4、修改配置文件

  • 邮箱的配置文件为:/etc/mail.rc
set [email protected]    #  你自己的邮箱
set smtp=smtps://smtp.qq.com:465  #邮箱所在服务器和端口,默认即可
set [email protected]  #自己的邮箱
set smtp-auth-password=loqmchjxmrzwihce   #获取邮件的授权码
set ssl-verify=ignore    #默认login即可
set smtp-auth=login      #ssl认证方式
set nss-config-dir=/root/.certs   #整数所在目录,这个可以自定义目录所在位置

5、请求数字证书

将下面的语句进行执行

mkdir -p /root/.certs/

echo -n | openssl s_client -connect smtp.qq.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/qq.crt

certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt

certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt

cd  /root/.certs/

certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ~/.certs/./ -i qq.crt

certutil -L -d /root/.certs

6、 测试邮件是否发送成功

echo  "邮件正文"  | mail -s   "邮件主题"   [email protected]

7、执行结果

使用命令发送邮件

echo "hello word " | mail -s "yudeqiang" [email protected]

centos系统内存磁盘过高报警发送邮件到qq邮箱_第3张图片

二、写入脚本执行

#!/bin/bash
#实时监控本机内存和硬盘剩余空间,剩余内存小于500M、根分区剩余空间小于1000M时,发送到自己的QQ邮箱 
systemctl stop firewalld    #关闭防火墙
yum -y install mailx &>/dev/null  #下载邮件安装包

#第一次需要填加,后面不需要
#cat >> /etc/mail.rc < ~/.certs/qq.crt
certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt
certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt
cd  /root/.certs/
certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ~/.certs/./ -i qq.crt
certutil -L -d /root/.certs

#获取可用内存的大小
Mem=`free -m |grep "Mem"|awk '{print $4}'`
#获取磁盘根目录的大小
disk=`df -m /|awk '/\//{print $4}'`

#定义while循环
while true
do
   #内存小于1G并且磁盘小于43G,将会报警,entos将会发送邮件到qq邮箱
   if [ $Mem -lt 1000 ] && [ $disk -lt 43000 ];then
       echo "内存空间小于1000M,磁盘空间小于43G"|mail -s "Warning" [email protected]
   fi
   break #因为这边是测试,所以发送一次即跳出循环
done

脚本执行结果

centos系统内存磁盘过高报警发送邮件到qq邮箱_第4张图片

centos系统内存磁盘过高报警发送邮件到qq邮箱_第5张图片

查看邮件内容

centos系统内存磁盘过高报警发送邮件到qq邮箱_第6张图片

你可能感兴趣的:(#,linux问题归纳,centos,linux,服务器)