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
使用定时任务定时执行脚本以达到监控磁盘空间预警发送邮件的功能。