Substituir MAILTO por uma única entrada de crontab

20

Temos uma conta de função no trabalho que possui um grande crontab. Seu MAILTO está apontado para um endereço compartilhado, para que muitos de nós sejam notificados se algo falhar.

Gostaria de adicionar uma entrada a este crontab, mas só quero que eu seja notificado se algo der errado. Existe uma maneira de alterar o MAILTO para esta entrada ou realizar meu objetivo?

Mike
fonte
Outra abordagem às sugeridas até agora é usar o recurso que o cron envia por e-mail ao usuário que está executando o trabalho; portanto, faça outro usuário apenas para esse trabalho e encaminhe seus e-mails para você.
Hayden Thring

Respostas:

21

Você sempre pode fazer:

MAILTO=you
* * * ...  your cron job
MAILTO=normal.destination
freiheit
fonte
11
As pessoas que aprovaram isso realmente testaram? Em caso afirmativo, qual implementação cron?
user1338062
Eu testei com o cron ICS / Vixie que acompanha o Ubuntu 14.04 ("3.0pl1-124ubuntu2") e funciona bem lá.
Nils Toedtmann
Feio, mas praticamente a única maneira de resolver isso. Trabalho!
Stamster 7/18
10

Você sempre pode canalizar toda a saída para o comando mail com o endereço correto em uma subshell. Enquanto não houver nada em STDOUT ou STDERR, o cron não enviará o email

10 * * * * sh -c 'thisoncommand 2> & 1 | mail [email protected] '

Anthony DeStefano
fonte
11
Isso não funciona - o comando "mail" envia independentemente de obter ou não a saída. Então, recebo uma mensagem vazia sobre o sucesso, enquanto o que quero não é uma mensagem sobre o sucesso.
mike
5
Agradável! E para evitar e-mails vazios do comando mail, use este parâmetro: -e (ou -E para alguns ..) #
3

Não me lembro se o cron prepara o arquivo para ler nos MAILTOvários ambientes, por isso não tenho certeza se você pode alterar várias vezes em um único arquivo. Mas você sempre pode dividi-lo em outro arquivo e inseri-lo /etc/cron.d/foocom a [email protected].

Brendan
fonte