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

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

现在我有如下的 cron:

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

它会仅禁用电子邮件发送吗?

答案1

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

  • “-m off” 禁用 cron 电子邮件
  • “-s” 将未捕获的任何输出发送到系统日志

这是假设您希望完全禁用 cron 电子邮件,而不是仅针对给定的条目。

答案2

我不确定它会不会,但让我们正确地修复这个问题。
重定向的顺序很重要。
您要做的就是将 stderr 和 stdout 消息都记录到该文件中,因此您应该:

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

也可以看看https://www.gnu.org/software/bash/manual/html_node/Redirections.html

相关内容