如何禁用cron作业邮件给root用户

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

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

因为这个,我目前收到数百封邮件。 我不知道为什么root每秒仍在接收邮件,或者告诉我cron作业已经运行 – 即使我已经明确地将输出redirect到了/ dev / null

任何人都可以解释为什么根继续接收邮件,以及如何改变这种行为?

我在Ubuntu 10.04 LTS上运行

您仍在收到电子邮件,可能是因为您只将标准输出redirect到了/ dev / null。 你的shell脚本也可能写入stderr,所以正确的redirect就像:

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

在crontab行之前插入MAILTO=""

你为什么不设置MAILTO =“”特别是用户在这里的“root”crontab。 这将禁止在/ var / spool / mail /

你已经将输出redirect到了/ dev / null,但只有当你使用bash作为你的crontab shell。 我相信,默认情况下你会使用/ bin / sh。

为了解决这个问题,我推荐Thor的解决scheme:

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

另一种解决scheme是将CRON更改为使用bash,方法是将其放在crontab项的开头:

 SHELL=/bin/bash