como fazer um crontab php silencioso

como fazer um crontab php silencioso

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>&1eu 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 -qsignifica "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>&1redireciona tudo escrito em stderr para stdout

>/dev/nullredireciona 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.

informação relacionada