
Configurei um crontab no Cpanel para rodar a cada minuto. Está funcionando muito bem, mas não quero um e-mail a cada minuto. Eu tenho uma segunda guia cron que é executada todos os dias. Gostaria da resposta desta aba. Existe uma maneira de dizer ao crontab para ficar em silêncio ou apenas enviar e-mail em caso de erro?
Eu tenho:
* * * * * php /home/public_html/folder/file.php 2>&1
A última parte 2>&1
eu adicionei porque pensei que iria silenciar.
Dos documentos do Cpanel:
Você pode fazer com que o cron envie um email sempre que executar um comando. Se você não deseja que um e-mail seja enviado para um cron job individual, você pode redirecionar a saída do comando para /dev/null assim: mycommand >/dev/null 2>&1
Responder1
use -q
significa "quieto" e, portanto, não gera saída
* * * * * php -q /home/public_html/folder/file.php
Além disso, pergunte-se por que deseja executá-lo a cada minuto, isso é um pouco excessivo.
Responder2
2>&1
redireciona tudo escrito em stderr para stdout
>/dev/null
redireciona stdout para /dev/null
O cron sempre enviará a você por e-mail qualquer coisa enviada para stdout ou stderr, a menos que seja redirecionado para outro lugar. Idealmente, seu script PHP deve ser reescrito para aceitar um sinalizador --quiet que não grava um monte de porcarias inúteis no stdout, que você pode usar em seu cron job.
A opção do preguiçoso é colocar umscript de wrapperem torno do seu cron job que o impedirá de enviar e-mails para você, a menos que seu comando saia diferente de zero.
Responder3
A configuração correta seria
>/dev/null
Isso faz com que a saída padrão seja ignorada e apenas envie um e-mail para você se houver um erro
Sua configuração atual não suporta a saída padrão, portanto você recebe um email sempre que ela é executada.