
Tenho algumas tarefas cron e algumas delas não param de me enviar e-mails.
Um exemplo de tarefa é:
*/2 * * * * php app/console mautic:email:fetch > /dev/null 2>&1
(Todas as tarefas com o problema são tarefas mauticas).
Eu tentei alguns truques para evitar e-mails:
> /dev/null
>/dev/null
>/dev/null 2>&1
>/dev/null 2>&1 || true
|| true
Todos eles continuam enviando e-mails a cada execução.
Um exemplo de e-mail:
/bin/sh: 1: não é possível criar 1: Permissão negada
(Entendo que é um erro estranho, mas é um exemplo. Sei que preciso resolver o erro e não silenciá-lo, mas quero saber por que não consigo silenciá-lo com um método normal).
A questão é: Por que mesmo quando redireciono o resultado da tarefa ou quando uso o || true para alterar o resultado da tarefa, o cron continua enviando e-mails? A única solução que posso encontrar (na questão vinculada) é adicionar
MAILTO=""
após as tarefas cron "normais" (ou sem spam) (e antes dessas outras).
Pergunta relacionada:Como faço para silenciar completamente um cronjob para/dev/null/?.
Responder1
O /bin/sh: 1: cannot create 1: Permission denied
erro provavelmente ocorre porque você cometeu um erro de digitação em um redirecionamento. Talvez em vez de 2>&1
você tenha 2>1
ou 2>1&
. (Normalmente, a tentativa de criar um arquivo nomeado 1
em seu diretório inicial seria bem-sucedida, mas se um arquivo nomeado 1
já existir e não for gravável, você receberá esse erro.)
A razão pela qual esse erro não é silenciado é que a mensagem não vem do comando cuja saída foi redirecionada. A mensagem está sendo reportada pelo shell enquanto ele tenta configurar o redirecionamento para o comando. A saída do shell em si não foi redirecionada, portanto a mensagem é coletada e enviada por cron
e-mail para você.