Como enviar a saída de um cronjob para vários endereços de email?

55

No início de um arquivo crontab, você poderia usar a MAILTOinstrução para indicar que deseja que a saída seja enviada como um email para um endereço de email. Gostaria de enviar a saída para vários endereços. É possível (e como) especificar vários endereços?

Boaz
fonte

Respostas:

72

Pode ser diferente dependendo exatamente de qual pacote daemon cron você usa, mas isso é da página de manual do Vixie Cron no Ubuntu Hardy:

Se MAILTO estiver definido (e não vazio), o email será enviado ao usuário assim chamado. O MAILTO também pode ser usado para direcionar mala direta para vários destinatários, separando os usuários com vírgula. Se MAILTO estiver definido, mas vazio (MAILTO = ""), nenhum email será enviado. Caso contrário, o correio será enviado ao proprietário do crontab.

Se você não estiver usando o Vixie Cron, ou não tiver certeza, tente a página de manual do arquivo crontab: man 5 crontab

Exemplo

MAILTO="[email protected],[email protected]"
ThatGraemeGuy
fonte
12
Uma coisa a observar - use apenas uma vírgula entre os endereços. Não use espaço também ; caso contrário, o cron registrará o endereço (provavelmente em / var / log / cron ou / var / log / daemon) como "UNSAFE" e se recusará a enviar para essa lista de endereços.
David Gardner
11
Ao separar os endereços com espaços em vez de vírgulas, aconteceu-me que cronmails enviados para o primeiro endereço única (e crontabnão reclamou quando salvar as alterações, que é uma vergonha ). Há erros no syslog ( (CRON) error (bad mailto)), mas ninguém percebeu ...
Tobias
11

Como alternativa às respostas acima, você pode enviar email para um único endereço, que é um grupo de email ou lista de distribuição. Isso funciona especialmente bem se você gerenciar vários servidores, pois é mais fácil gerenciar endereços no servidor de correio do que no crontab de cada máquina.

dtoubelis
fonte
IMHO esta é a resposta certa. Quem deseja manter listas individuais de endereços de email em vários crontabs?
23630 Satanicpuppy
Criei uma lista simples: 1. Como root, adicione um "destinatário virtual" /etc/aliasesadicionando uma linha como esta: cron-listeners: [email protected], [email protected]2. No crontab, defina MAILTO=cron-listenersSe você não tiver acesso root, tente o .forwardmétodo.
Joeytwiddle
4

Uma solução pode ser um .forwardarquivo nessa conta de usuário que envia email para os endereços apropriados.

Matt Simmons
fonte
11
Um arquivo .forward é o caminho a percorrer.
sleske
0

A melhor resposta é provavelmente verificar as páginas de manual da versão atual do cron / crontab da sua distribuição para ver se há algo que possa ser feito com o parâmetro MAILTO ou especificar um endereço de email que, por sua vez, encaminhe emails para vários endereços para você.

Bart Silverstrim
fonte
0

Adicione ,após cada email, por exemplo:MAILTO="[email protected],[email protected]"

dannyb2100
fonte
3
Na documentação, os e-mails são separados por vírgula, você está usando um ponto-e-vírgula aqui. Você tem certeza de que esta sintaxe está funcionando?
physicalattraction
11
@MichaelHampton the ;does not work
030
@ Alfredo, estou bem ciente disso. O mesmo acontece com a outra pessoa que comentou!
Michael Hampton
11
@kasperd Porque não é apropriado alterar o significado das postagens de outras pessoas. Isso é apenas para o pôster, e até agora ele optou por não corrigi-lo. Respostas erradas devem ser votadas com menos votos e comentadas.
Michael Hampton
11
Corrigido minha postagem. Não sei como estava funcionando em 2010. Como @ThatGraemeGuy em um post acima. Pode depender do pacote Cron.
dannyb2100