当 STDOUT 或 STDERR 中没有任何内容时,如何停止 cron 发送电子邮件?

当 STDOUT 或 STDERR 中没有任何内容时,如何停止 cron 发送电子邮件?

Ubuntu 14.04lts 带有 Perl 5.18.2。

这是一个特殊情况,Google 没有帮助我。我不想关闭所有 cron 作业的电子邮件,我的 crontab 中有大约 15 个作业。如果有错误,我需要查看 cron 发送给我的电子邮件。

这项工作是一个特殊情况,我需要一个解决方案。我的 crontab 中有一个 bash 脚本,它调用一个 perl 脚本,该脚本设置为每 5 分钟检查一次电子邮件。(我无法设置完整的 MTA。)如果没有电子邮件,脚本不会将任何内容输出到 STDOUT 或 STDERR,但 cron 仍会向我发送一封空白电子邮件,主题中包含 bash 脚本的完整路径。

  1. 我希望 cron 和 Perl 脚本在 perl 脚本找到电子邮件并处理它时(包括出现错误时)向我发送电子邮件。
  2. 如果 Perl 脚本没有输出,我不希望 cron 向我发送一封空白电子邮件,因为没有找到电子邮件。该脚本每 5 分钟运行一次。

有人有主意吗?

编辑:已确认。我的问题是一个多余的换行符。问题解决了。如果没有输出,Cron 不会发送电子邮件。谢谢!您的评论很有帮助。

答案1

每隔 5 分钟就会出现一个空白电子邮件,这是由于一个多余的换行符造成的。

仅当 cron 作业/程序运行有输出时,Cron 才会发送电子邮件。我的输出是换行符,当然,我在 Alpine 中看不到它,但它确实在那里。我找到了程序正在打印的换行符并将其删除。

现在我设计我的 cron 程序,除非它通过参数检查,否则永远不会输出任何内容。

相关内容