1.安装mailx工具,mailx是一个小型的邮件发送程序

yum install mailx

2.编辑配置文件

vim /etc/mail.rc   #添加如下内容

情况一:25端口开放情况

set from=6247***@qq.com                 #对方收到邮件时显示的发件人
set smtp=smtp.qq.com       #指定第三方发邮件的smtp服务器地址,如:smtp.qq.com
set smtp-auth-user=6247***@qq.com     #第三方发邮件的用户名
set smtp-auth-password=*****  #用户名对应的密码,QQ邮箱可以使用授权码
set smtp-auth=login                           #SMTP的认证方式,默认是login

情况二:25端口不开放

set from=62475***@qq.com
set smtp=smtp.qq.com
set smtp-auth-user=6247***@qq.com
set smtp-auth-password=*****
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/root/.certs   #制定的存放QQ邮箱SSL证书的位置。

保存上述的编辑退出。

因为需要QQ邮箱的SSL证书,所以我们还需要手动的获取QQ邮箱的证书保存到本地指定的目录里以备调用和验证,具体命令如下:

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
certutil -L -d /root/.certs

还需要进入邮箱SSL证书存放目录/root/.certs里执行如下命令:

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

返回如下提示即可:

**Notice: Trust flag u is set automatically if the private key is present.**

这是为了信任证书的标记操作。

3.测试发送邮件

echo "测试邮件" | mail -s "测试" 6247***@qq.com

4.准备Shell脚本

#!/bin/sh
email="6247***@qq.com"     #接收邮件的邮箱
df -Ph | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5,$1 }' | while read output;
do
  echo $output
  used=$(echo $output | awk '{print $1}' | sed s/%//g)
  partition=$(echo $output | awk '{print $2}')
  if [ $used -ge 90 ]; then            #预警界限,使用的百分比
  echo "$(hostname) 上的分区:\"$partition\" 已使用 $used%  $(date)" | mail -s "磁盘空间警报: $(hostname) 已使用 $used% " $email      #echo后边为正文,mail -s后边为主题
  fi
done

在windows下编辑的shell,到linux报错,执行

sed -i 's/\r$//' shell.sh

5.准备定时任务

[app@DZWL-APP-SVR /home/app]$  crontab -e
00 10 * * * /bin/sh /home/app/backup/disk.sh

使用定时任务定时执行脚本以达到监控磁盘空间预警发送邮件的功能。

02-13 16:04