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

 

 

原创不易,记得点赞哦!

posted @ 2020-04-11 15:27  3月の狮子  阅读(786)  评论(0编辑  收藏  举报