Crontab,保持输出日志,但禁用电子邮件发送

现在我有crons:

45 * * * * www-data php /var/www/console cmd:dispatch --env=prod 2>&1 > /var/log/cron/cmd_dispatch.log 

我想禁用电子邮件发送。 为了实现这一点,我可以添加&> /dev/null像:

 45 * * * * www-data php /var/www/console cmd:dispatch --env=prod 2>&1 > /var/log/cron/cmd_dispatch.log; &> /dev/null 

它只会禁用电子邮件发送?

如果你真的想阻止cron发送电子邮件,你可以使用“-m off -s”参数运行服务。

  • “-m off”禁用cron邮件
  • “-s”将任何未捕获的输出发送到syslog

这是假设你想cron电子邮件完全禁用,而不仅仅是一个给定的条目。

我不确定会不会,但让我们正确地解决这个问题。
redirect的顺序很重要。
你要做的是将stderr和stdout消息logging到该文件,所以你应该:

 ... >/var/log/cron/cmd_dispatch.log 2>&1 

另见https://www.gnu.org/software/bash/manual/html_node/Redirections.html