Por que o cron não para de enviar e-mails, mesmo redirecionando para/dev/null

Por que o cron não para de enviar e-mails, mesmo redirecionando para/dev/null

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 deniederro provavelmente ocorre porque você cometeu um erro de digitação em um redirecionamento. Talvez em vez de 2>&1você tenha 2>1ou 2>1&. (Normalmente, a tentativa de criar um arquivo nomeado 1em seu diretório inicial seria bem-sucedida, mas se um arquivo nomeado 1já 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 crone-mail para você.

informação relacionada