Arquivos de logs de correio como anexos com o sendmail

1

Estou usando o logrotate para girar meus arquivos de log.

Eu configurei isso para criar novos arquivos de log toda semana.

No entanto, eu gostaria que primeiro me enviassem os arquivos de log como anexos.

O arquivo /var/log/httpd contém atualmente:

/var/log/httpd/*log {
    missingok
    notifempty
    sharedscripts
    firstaction
        {I think I need to mail the logfiles here???}
    postrotate
        /sbin/service httpd reload > /dev/null 2>/dev/null || true
    endscript
}

É possível fazer o que eu quero?

Em caso afirmativo: o que eu preciso adicionar ao firstaction para:

  • envie-me os arquivos de log ( /var/log/httpd/*log ) como anexo usando o sendmail
  • adicione um assunto ao e-mail, por exemplo: HTTPD logfiles {week #}
por PeeHaa 11.12.2011 / 18:53

1 resposta

3

Se eu entendi sua pergunta corretamente, há uma opção de logrotate que fará o que você quiser. Basta adicionar mail [email protected] como uma das opções de configuração, como esta:

/var/log/httpd/*log {
    mail [email protected]
    ...

Isso lhe enviará os arquivos de log que estão prestes a serem rotacionados.

Talvez você tenha tentado isso e não tenha feito exatamente o que precisa. Nesse caso, acho que você está no caminho certo na maior parte. No entanto, invocar o sendmail diretamente não é a abordagem correta quando você está tentando enviar uma mensagem com anexos. Para citar a FAQ do sendmail :

How do I create attachments with sendmail?

You don't. Sendmail is a mail transfer agent (MTA). Creating e-mail messages, including adding attachments or signatures, is the function of a mail user agent (MUA). Some popular MUAs include mutt, elm, exmh, Netscape, Eudora and Pine. Some specialized packages (metamail, some Perl modules, etc.) can also be used to create messages with attachments.

Se você tem o agente de e-mail mutt (ou pode instalá-lo), ele deve ser capaz de fazer o que quiser. Tente algo assim:

/var/log/httpd/*log {
    firstaction
       echo | mutt -s "Log files for 'date'" [email protected] -a /var/log/httpd/*log
    endscript
    ...

Observe também em seu arquivo de configuração de exemplo que está faltando o comando endscript para o seu firstaction .

    
por 11.12.2011 / 22:45