最近用CentOS 6.3 x86_64 + Mutt 1.5.2. + Msmtp 1.4.27 + Nagios 3.2 搭建监控平台,碰见一个郁闷的问题,就是Mutt+Msmtp 在commands.cfg中无法发送邮件报警的问题。

问题描述:

单独使用mutt命令可以发送邮件,

例如: echo "This is a new mail." | mutt -s "new message" mymail@163.com

而在配置文件(commands.cfg)里面定义了命令,当主机和服务当掉,不能发送邮件。查看/usr/local/msmtp/etc/msmtp.log,没有任何的发送邮件日志。查看Nagios日志,发现命令已经执行,但是就是收不到邮件,Nagios日志代码如下

Feb 6 05:59:35 localhost nagios: SERVICE NOTIFICATION: nagios;mysql_server;check_slave;CRITICAL;notify-by-sms;ERROR!:The Slave Mysql Server Was Down!!!

Feb 6 05:59:36 localhost nagios: SERVICE NOTIFICATION: nagiosadmin;mysql_server;check_slave;CRITICAL;notify-by-sms;ERROR!:The Slave Mysql Server Was Down!!!

通过命令/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg 检查配置文件,并没有错误报告,单独查看commands.cfg配置文件,也没有检查出错误,commands.cfg配置文件代码如下

define command{

command_name notify-by-sms

command_line /usr/bin/printf "%b" "***** Nagios-service *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /usr/bin/mutt -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$

}

define command{

command_name service-by-email

command_line /usr/bin/printf "%b ***** Nagios-host *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /usr/bin/mutt -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$

}

contacts.cfg配置文件中也正确,这个问题很是让人纠结啊,没有报错,就是在Nagios中无法发送报警邮件。后来通过查询资料了解,才知道Mutt会在家目录下生成一个sent的文件,你发送的记录都会写到此文件中,而我用的是root用户登录,nagios调用mutt后台执行,但是没有权限在sent文件中是写入数据,所以才会出现这个问题。

好了,问题根源找到了,解决也就好说多了,直接把/root目录 和/root/sent 给nagios写入权限,问题解决了。

linux mutt 发邮件失败,Nagios+mutt+msmtp 无法发送邮件的问题!相关推荐

  1. linux如何发邮件到外部邮箱

    linux如何发邮件到外部邮箱 使用linux时,有时我们想发邮件给朋友或同事,可不可以通过命令行直接发呢? 想通过linux监控网站或者系统状况并自动报警,如何使用脚本发出邮件给外部邮箱呢? 不需要 ...

  2. linux发邮件失败,Linux SendMail发送邮件失败诊断案例,sendmail发送邮件

    Linux SendMail发送邮件失败诊断案例,sendmail发送邮件 Linux上Sendmail经常由于一些配置问题,导致邮件发送失败,下面整理.收集了一些邮件发送失败.异常的案例. 案例1: ...

  3. linux mailx 发邮件

    当需要服务器定时发送邮件到自己邮箱时,一个邮件服务就很重要了,以下主要是mailx的实现,主要是利用 1.安装mailx yum install mailx -y 2.使用到的配置文件只有一个,是 / ...

  4. linux git 发邮件,gitlab发邮件基于sendmail

    gitlab发邮件基于sendmail 以前都是直接把邮件关了,今天有一哥们需要使用一直没弄好,我也帮忙弄,不得不说真TM是个坑!!! 卸载本地的postfix yum remove postfix ...

  5. python发邮件脚本_Python实现的简单发送邮件脚本分享

    近来有些东西需要监控报警发邮件,然后在网上找了点材料,自己写了一个简单发送邮件的脚本,主要就是运用python的smtplib模块,分享给大家看一下: #!/usr/bin/env python # ...

  6. python发邮件详解_用Python3发送邮件详解

    [整个邮件系统是怎样工作的] 邮件自互联网诞生之初就有了,它和web服务一样也是采用的c/s架构,比如我们常见的邮件客户端有outlook.foxmail这些邮件客户端软件. 当我们要发邮件时客户端就 ...

  7. phpmail通过qq发邮箱失败_php 利用qq邮箱发送邮件的实现

    是一个封装好的PHP邮件发送类,支持发送HTML内容的电子邮件,以及可以添加附件发送,并不像PHP本身mail()函数需要服务器环境支持,您只需要设置邮件服务器以相关信息就能实现邮件发送功能. 项目地 ...

  8. Linux下配置用msmtp和mutt发邮件

    Linux下可以直接用mail命令发送邮件,但是发件人是user@servername,如果机器没有外网的dns,其他人就无法回复.此时,有一个可以使用网络免费邮箱服务的邮件发送程序就比较重要了.ms ...

  9. linux mutt 收不到邮件,mutt 发邮件189邮件收不到邮件内容的解决办法

    测试mutt报警但, 发现在发其他邮箱没有异常,就是发到电信189邮箱出现内容空白的问题, 后发到163邮箱发现为乱码 ,故想到是mutt配置问题: 在.muttrc文件中 set sendmail= ...

最新文章

  1. select的5中子句where,group by, havaing, order by, limit的使用顺序及实例
  2. BiGAN-QP:简单清晰的编码 生成模型
  3. Qt 中pro文件换行注意的问题
  4. libgdx和unity_libgdx和Kotlin –类[2D平台原型]
  5. 清华来了第二位菲尔兹奖得主,是丘成桐力荐的老朋友Caucher Birkar
  6. 永远不要放弃你所爱的人
  7. 谷歌详述 Zoom 客户端和MMR 服务器中的两个0day
  8. linux错误—3.解决设置普通用户的sudo权限中碰到的问题:sudo: /etc/sudoers is world writable...
  9. background的认识(一)
  10. 关于document.cookie的使用javascript
  11. Oracle 同音字查询,汉字的演变过程100字,汉字的演变图片
  12. Jon的Java程序员实习报告
  13. PAT乙级真题 1092 最好吃的月饼 C++实现
  14. java 获取本年月份、本月/本周所有日期
  15. WIN7常用使用设置
  16. kvm 虚拟机与宿主机通信
  17. 客户关系管理 数据库设计案例
  18. 全球与中国无线充电芯片市场深度研究分析报告
  19. Excel处理 中文转拼音缩写
  20. 原生app登录 后台方案(token方案)

热门文章

  1. python循环拼接字符串_Python字符串拼接
  2. 博客园背景特效(粒子线条,彩带,滴墨水)
  3. 中国是信息化最好的国家,千真万确
  4. linux 下mysql服务器数据库迁移
  5. linux是手机端还是电脑端,判断浏览器用户端是PC还是移动设备的方法
  6. spring中jso文件获取后台数据时注意的点
  7. Hive高级、Hive的元数据
  8. 如何成为一个好的项目经理?
  9. 腐败团--铁锅门养生香辣馆
  10. 交易是否是零和游戏?