como fazer um crontab php silencioso

2

Eu configurei um crontab no Cpanel para executar cada min. Está funcionando muito bem, mas eu não quero um e-mail a cada minuto. Eu tenho uma segunda guia cron que é executada todos os dias. Eu gostaria da resposta desta aba. Existe uma maneira de dizer ao crontab para ficar em silêncio ou apenas e-mail em erro?

Eu tenho:

    *    *  *   *   * php /home/public_html/folder/file.php 2>&1

O último bit 2>&1 que adicionei porque achei que ficaria silencioso.

Do Documentos do Cpanel:

You can have cron send an email everytime it runs a command. If you do not want an email to be sent for an individual cron job you can redirect the command's output to /dev/null like this: mycommand >/dev/null 2>&1

    
por BandonRandon 23.12.2010 / 22:32

3 respostas

3

use -q significa "silencioso" e, portanto, não gera saída

*    *  *   *   * php -q /home/public_html/folder/file.php

também, pergunte-se por que você quer executá-lo a cada minuto, isso é um pouco excessivo.

    
por 23.12.2010 / 22:57
1

2>&1 redireciona tudo escrito para stderr para stdout

>/dev/null redireciona stdout para / dev / null

O cron sempre enviará por e-mail qualquer coisa enviada para stdout ou stderr, a menos que seja redirecionada para outro lugar. Idealmente, seu script PHP deve ser reescrito para aceitar um sinalizador --quiet que não escreve um monte de lixo inútil para o stdout, que você poderia usar em seu trabalho cron.

A opção do homem preguiçoso é colocar um script wrapper em torno do seu trabalho cron que parará enviando um e-mail a você, a menos que seu comando saia diferente de zero.

    
por 23.12.2010 / 22:48
0

A configuração correta seria

>/dev/null

Isso faz com que a saída padrão seja ignorada e só envia um e-mail para você se houver um erro

Sua configuração atual não lida com a saída padrão, portanto, você recebe um e-mail sempre que é executado.

    
por 23.12.2010 / 22:37

Tags