如何禁用向 root 用户发送 cron 作业邮件

如何禁用向 root 用户发送 cron 作业邮件

我的 /etc/cron.d/apache2watch 文件中有以下行

* * * * * root /bin/apache2-restart.sh &> /dev/null

由于这个原因,我目前收到了数百封发给 root 的邮件。我不知道为什么 root 仍然每隔一秒左右就会收到一封邮件,告诉我 cron 作业已运行 - 即使我已明确将输出重定向到 /dev/null

谁能解释为什么 root 继续接收邮件,以及我该如何改变这种行为?

我在 Ubuntu 10.04 LTS 上运行

答案1

您仍在接收电子邮件,可能是因为您仅将标准输出重定向到 /dev/null。您的 shell 脚本可能也会写入 stderr,因此正确的重定向应如下:

* * * * * root /bin/apache2-restart.sh > /dev/null 2>&1

答案2

MAILTO=""在 crontab 行之前插入。

答案3

为什么不在特定用户的 'root' crontab 中设置 MAILTO=""。这将禁用 /var/spool/mail/ 中的邮件消息记录

答案4

您已将输出重定向到 /dev/null,但前提是您使用 bash 作为 crontab shell。我相信默认情况下您会使用 /bin/sh。

为了修复此问题,我推荐 thor 的解决方案:

* * * * * root /bin/apache2-restart.sh > /dev/null 2>&1

另一个解决方案是将下面的代码放在 crontab 条目的开头,从而将 CRON 更改为使用 bash:

SHELL=/bin/bash

相关内容