Linux系统发送告警邮件
一、采用Shell脚本
方法1:搭建本地邮箱服务器。
如:Simple Mail、Postfix
创建用户后,可以向外发送邮件。
发件人默认显示主机名,有可能会被拒收。
并且发送延迟较大,有时好几分钟才收到。
考虑到以上2个缺点,我们可以使用
方法2:使用外部邮箱服务器。
(1)mailx查询
[root@localhost etc]# rpm -qa | grep mailx mailx-12.5-19.el7.x86_64 libreport-plugin-mailx-2.1.11-40.el7.x86_64
说明:在CentOS 7系统中默认有安装mailx命令进行系统邮件的发送。如果没有相关的命令可以自行通过yum安装
[root@localhost etc]# yum -y install mailx
(2)/etc/mail.rc配置文件
[root@localhost etc]# vim /etc/mail.rc
set from=xxxxx@163.com smtp=smtp.163.com set smtp-auth-user=xxxxx@163.com smtp-auth-password=Password set smtp-auth=login
说明:对于163邮箱来说,认证密码并不是邮箱登陆密码,而是你打开邮箱POP3/SMTP服务时,弹出的密码。
调用163邮箱服务器来发送邮件,我们需要开启POP3/SMTP服务,这时163邮件会让我们设置客户端授权码,这个授权码替代上面代码部分的Password即可成功发送邮件
(3)mail发送测试
[root@localhost etc]# echo "The mail's content." | mail -s "The mail's Subject." xxxxx@163.com
[root@localhost tmp]# mail -s "The mail's Subject." xxxxx@163.com < test.txt
说明:
1.这样一来,在我们写其他脚本时,可以直接调用mail命令来发送告警邮件
2.系统收到的mail会保存在/var/spool/mail,或者直接使用mail命令查看搜到的邮件。
[root@localhost tmp]# mail No mail for admin