使用 linux 系统发送邮件可以帮我们实现一些操作,如监听。
例:当云服务器 cpu 或者 磁盘超过 80% 则发个邮件给我们,我们不需要实时查看云服务器,只要能收到邮件就可以了,岂不妙哉!
# 首先 安装 mailx
yum install mailx -y
# 在 /etc/mail.rc 文件末尾追加一些配置
# 追加发件者,需输入你自己的邮箱
echo set from=yourEmail@163.com >> /etc/mail.rc
# 追加发件者的邮箱类型
echo set smtp=smtp.163.com >> /etc/mail.rc
# 追加用户
echo set smtp-auth-user=yourEmail@163.com >> /etc/mail.rc
# 追加授权码,可自行到邮箱内查看
echo set smtp-auth-password=授权码 >> /etc/mail.rc
echo set smtp-auth=login >> /etc/mail.rc
发送纯文本邮件
# 第一种
echo content | mail -s 'title' otherMail@163.com
# 第二种,将文件中的内容作为邮件正文内容发出
mail -s 'title' otherMail@163.com < filePath
发送附件邮件
# 一个附件
echo content | mail -s 'title' -a filePath otherMail@163.com
# 多个附件
echo content | mail -s 'title' -a filePath -a fileTwoPath otherMail@163.com
解决附件过大问题
# 查看默认大小
postconf message_size_limit
# 修改默认大小
postconf -e message_size_limit=102400000
# 重启一下守护进程
service postfix restart
例:要求每分钟执行一次,当磁盘内存不满足要求时发邮件提醒
# 在 /root 路径下创建一个文件 alert.sh 并添加以下内容
#!/bin/bash
# 将当前已使用磁盘的量赋给 disk,单位为 %
disk=`df -h | awk -F " " 'NR==2{print $5}' | sed s/%//g`
# 低于 80% 提醒一次
if [ $disk -lt 80 ]
then
echo "Current disk usered $disk %" | mail -s "disk warning!" hellolxb@yeah.net
fi
# 保存并退出
# 创建一个周期计划任务,每分钟执行一次
crontab -e
# 添加以下内容,每分钟执行一次
# 分 时 日 月 星期 要执行的命令
# 范围('*' 表 '每'):0-59 0-23 1-31 1-12 0-7(0和7为星期天)
# 命令需要加上绝对路径
*/1 * * * * bash /root/alert.sh
# 保存并退出
# 查看已创建的计划任务
crontab -l