Programar o envio de mensagens de um conteúdo de arquivo de log

6

Eu tenho o agente de email postfix instalado e configurei o reencaminhamento do Gmail e poderei enviar e-mails a partir do terminal, conforme abaixo:

root@statino1:~# mail -s "subject_here" [email protected]
CC: <hit enter for empty cc>

Type the mesage here
press Ctrl+d

Eu tenho que enviar um conteúdo de arquivo de log como um e-mail e programá-lo para ser executado todos os dias.

Como faço para enviar o conteúdo do arquivo de log como mensagem de correio, como automatizo as entradas do comando mail ? para que eu possa agendar. Alguém tem alguma ideia?

    
por user3215 08.03.2011 / 13:43

1 resposta

5

Você pode enviar um email com um comando como este:

mail -s 'Subject' [email protected]  < log.txt

mail espera um fluxo de entrada, se não houver nenhum, obtém entrada padrão (isto é, digita algo). O operador < (unix file-stream) diz ao mail para ler o conteúdo do arquivo, em vez de / dev / stdin (que também é apenas um arquivo).

Adicionar um anexo parece um pouco mais difícil:

Se você quiser verificar se o arquivo está vazio ou não, você pode fazer um teste como este:

if [ -s test.txt ];
then
    echo "file is not empty";
fi

Assim, seu comando ficaria assim:

if [ -s log.txt ]; then mail -s 'Subject' [email protected]  < log.txt; fi
    
por Stefano Palazzo 08.03.2011 / 14:17