Configurei Cron Jobs para rodar dentro de um ambiente Chroot, dependendo do usuário/grupo;
Percebi que esses cron jobs, executados dentro do ambiente chroot, não conseguem enviar nenhum email.
Os arquivos de log informam que não é possível encontrar um programa para enviar mensagens.
Onde o processo Cron procura o binário de correio padrão? Você pode definir ou configurar esse caminho?
e em uma observação lateral... se a variável MAILTO= não estiver definida, como o Cron sabe para onde enviar mensagens? ele apenas envia mensagens para o usuário que está executando o trabalho, no host local?
obrigado!
Responder1
Onde o processo Cron procura o binário de correio padrão?
A menos que especificado de outra forma, tenho quase certeza de que ele usa apenas o programa de email que encontra no caminho (/bin:/usr/bin). No entanto, você pode especificar o -m
argumento da linha de comando para algumas versões do cron
-m Esta opção permite que você especifique uma string de comando shell a ser usada para enviar a saída do cron mail em vez do sendmail(8). Este comando deve aceitar uma mensagem de correio totalmente formatada (com cabeçalhos) em stdin e enviá-la como uma mensagem de correio aos destinatários especificados nos cabeçalhos de correio.
O acima funciona no CentOS/RHEL, o Ubuntu parece diferente
Você pode definir ou configurar esse caminho?
Veja acima.
se a variável MAILTO= não estiver definida...
Se MAILTO não estiver definido, como você suspeita, o email será entregue ao usuário local que está executando o trabalho.
No CentOS/RHEL você pode especificar argumentos extras de linha de comando em /etc/sysconfig/crond para que você não precise editar seus scripts de inicialização. Outros sistemas operacionais/distros podem fornecer funcionalidades semelhantes.