我在Cpanel中设置了一个crontab来运行每分钟。 这工作很好,但我不想每分钟都收到一封电子邮件。 我有第二个cron选项卡,每天运行。 我想要这个标签的回应。 有没有办法告诉crontab无声或只有电子邮件的错误?
我有:
* * * * * php /home/public_html/folder/file.php 2>&1
我添加了最后一位2>&1因为我认为它会让它保持沉默。
从Cpanel Docs:
你可以让cron每次运行一个命令发送一封邮件。 如果你不想为单个cron作业发送邮件,你可以像下面这样将命令的输出redirect到/ dev / null:mycommand> / dev / null 2>&1
使用-q意味着“安静”,因此不会产生输出
* * * * * php -q /home/public_html/folder/file.php
同样,问问自己为什么每分钟都要运行一次,这有点过分了。
2>&1将写入标准错误的所有内容redirect到标准输出
>/dev/null将stdoutredirect到/ dev / null
除非redirect到其他地方,否则cron会一直向您发送任何发送到stdout或stderr的东西。 理想情况下,你的PHP脚本应该被重写为接受一个–quiet标志,不写一大堆毫无用处的标准输出,然后你可以在你的cron作业中使用。
懒惰的人的select是围绕你的cron作业放置一个包装脚本 ,它将阻止它发送电子邮件给你,除非你的命令退出非零。
正确的设置将是
>/dev/null
这会使标准输出被忽略,只有在发生错误时才会发送电子邮件给您
您当前的设置不处理标准输出,因此每次运行时都会收到一封电子邮件。