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?

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="user.one@domain.one,user.two@domain.two"

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.


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: fred@example.com, george@example.com2. 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.


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ê.


0

Adicione ,após cada email, por exemplo:MAILTO="some.user1@example.com,some.user2@example.com"


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.