Parar de cron de me enviar um email

10

Como posso parar o cron de me enviar por e-mail os resultados dos trabalhos que eu agendar?

Richard Hoskins
fonte

Respostas:

15

Definindo a variável de ambiente "MAILTO" como ""

Algo como:

SHELL=/bin/bash
MAILTO=



01 * * * *  /your/path/to/script/here.sh
OscarRyz
fonte
12

Se você deseja que um único trabalho interrompa o e-mail, basta anexar> / dev / null 2> & 1 a ele

Por exemplo:

0 * * * * /home/script >/dev/null 2>&1
Roubar
fonte
1
Se você tiver certeza de que uma execução será concluída antes da próxima inicialização, pode valer a pena redirecionar a saída para um arquivo nomeado em vez de para / dev / null: isso oferece a opção de verificar o que aconteceu com a última execução, se você suspeitar de um erro. problema.
Más
4

Cron envia apenas e-mails se houver saída, ativada stdoutou desativada stderr.

Se você escreveu um script, torne-o menos detalhado - remova declarações echoou printinstruções desnecessárias . Redirecionar stdoutpara /dev/nulltambém é uma solução válida:

2 * * * * /my/script > /dev/null

Se você ainda receber mensagens depois de fazer isso, a saída estará ativada stderr; portanto, deve haver um erro que você deve resolver. Caso contrário, você pode redirecionar stderrpara /dev/nullcom ..

2 * * * * /my/script > /dev/null 2> /dev/null

.. embora desconsiderar as mensagens de erro seja geralmente uma má ideia! (Como você saberá quando o trabalho cron é interrompido?)

Você pode redirecionar a saída de um comando específico de stderr para stdout usando 2>&1- por exemplo:

command_which_prints_messages_to_stderr 2>&1 # redirect stderr to stdout

..then dirigir stdouta /dev/nullem seu trabalho cron - de que maneira você silenciar o brado, sem perder mensagens de erro

dbr
fonte