【问题标题】:Postfix vs CrontabPostfix vs Crontab
【发布时间】:2015-10-22 18:25:57
【问题描述】:

我有一个 CentOS 服务器,我找到了一个脚本,它可以向我发送有关机器健康状态的电子邮件。 Postfix 已正确配置,因为脚本完成了他的工作,并且我在我的 gmail 帐户中收到了我的报告,但是当我在 /etc/crontab 中请求一个 cron 作业以在第二天早上 11 点每天向我发送此报告时,我收到了 120 封电子邮件!

第一个是我要求的报告,第二个如下:

向以下收件人的递送永久失败:

   root@server.localdomain

永久失效的技术细节: DNS 错误:server.localdomain 的地址解析。失败:未找到域名

120 封电子邮件,其中 60 条报告和其他 60 条上述错误消息。

同样,如果我现在运行脚本,它可以正常工作,我会收到 1 封电子邮件,其中包含我的报告并且没有发送失败。

与 cron 有什么关系? /etc/crontab 行如下:

* 23 * * * root sh /home/fr2632v2/Downloads/linuxhealthcheck.sh

谢谢

【问题讨论】:

    标签: email cron centos


    【解决方案1】:

    Cron 正在尝试向root 电子邮件地址发送电子邮件,默认情况下为root@hostname。你有两个选择。

    1. /etc/aliases 中配置全局root 电子邮件。

      • 下面# Person who should get root's mail
      • 添加root: your@email.com
    2. 配置 cron 以将报告发送到特定地址

      • 编辑/etc/crontab 并将MAILTO= 更改为所需的电子邮件地址。

    现在您已经配置好了,您应该会收到 2 封电子邮件:1 封来自脚本本身(正如您提到的,即使您手动运行它也会收到一封)和 2 封来自作业的 cron STDOUT(正常输出)。如果您不希望收到第二个,请将您的 cronjob 更改为以下内容:(如果出现错误,它仍会发送电子邮件):

    * 23 * * * root sh /home/fr2632v2/Downloads/linuxhealthcheck.sh > /dev/null
    

    【讨论】:

    • 非常感谢您的回复。我按照您的步骤操作,我不再收到失败的电子邮件,但仍然收到 120 封电子邮件。 60 是我的报告,60 就像:在当前目录中生成的报告文件 health-server-150801-2357.txt。
    • 您当前的 cronjob 设置为每 23 小时的每分钟运行一次(23:00、23:01 等)要让它每天运行一次,请将其更改为 0 23 * * * root sh /home/fr2632v2/Downloads/linuxhealthcheck.sh > /dev/null
    • 那是“问题”!谢谢!!
    猜你喜欢
    • 2021-06-23
    • 2012-03-08
    • 2014-04-07
    • 2013-07-28
    • 1970-01-01
    • 2013-07-02
    • 1970-01-01
    • 2016-12-29
    • 2015-09-06
    相关资源
    最近更新 更多