Shell Script para Enviar saída ou log via email

1

Eu quero saber se é possível obter minha saída de script de backup ou qualquer um dos seus erros via e-mail usando o google (ou qualquer outro servidor SMTP). Eu não quero instalar um servidor de email na minha máquina local. Qual script ou ferramenta devo usar para fornecer essa funcionalidade?

    
por user103373 13.12.2011 / 08:06

3 respostas

0

Eu encontrei outra boa ferramenta MSMTP para minha exigência enviando e-mails usando smtp externo ou gmail smtp. Como sugerido acima, quando eu configurei ssmtp i recebendo todos os e-mails que é junked para mim como cron mails & correios gerados por munin-cron & outras aplicações.

Passos da Configuração MSMTP O MSMTP pode ler todos os parâmetros necessários na linha de comando.

touch ~/.msmtprc
chmod 0600 ~/.msmtprc

vim ~/.msmtprc 
# Use an external SMTP server with insecure authentication.
# (manually choose an insecure authentication method.)
# Note that the password contains blanks.

defaults

######################################################################
# A sample configuration using Gmail
######################################################################

# account name is "gmail".
# You can select this account by using "-a gmail" in your command line.
account gmail
host smtp.gmail.com
tls on
tls_certcheck off
port 587
auth login
from [email protected]
user somebody
password somesecret

######################################################################
# A sample configuration using other normal ESMTP account
######################################################################

# account name is "someplace".
# You can select this account by using "-a someplace" in your command line.
account someplace
host smtp.someplace.com
from [email protected]
auth login
user someone
password somesecret

# If you don't use any "-a" parameter in your command line,
# the default account "someplace" will be used.
account default: someplace


Test
cat <<EOF | msmtp -a gmail [email protected]
Subject: test

This is a test!
EOF
    
por 26.12.2011 / 11:07
2

Existem outras opções para usar mutt para enviar e-mails por meio de um servidor SMTP externo.

Prego fará o que você quiser e nada mais.

Ambos Esmtp e sSMTP substitua o sendmail (ou Postfix ou Exim ou qualquer outro) por uma simples retransmissão de email que irá redir tudo através de um servidor SMTP externo .

Existem vantagens em instalar um MTA adequado. Nail, Mutt e sSMTP não têm noção de fila. Se o servidor SMTP estiver inativo, todos eles lhe enviarão uma mensagem de erro e esquecerão o e-mail que você acabou de fornecer.

O ESMTP tem uma fila, mas não é um daemon, por isso não gerencia ativamente a fila. Ele tentará novamente todos os e-mails na fila sempre que você tentar enviar um novo e-mail. Isso pode causar o que eu gosto de chamar de "síndrome de ônibus de Londres": você espera o dia todo por um e-mail e, em seguida, 10.000 de uma só vez.

    
por 13.12.2011 / 09:04
0

Existem tantas ferramentas boas usando e-mail que eu recomendo strongmente que você reconsidere a ideia do servidor de e-mail local. Se a segurança é sua preocupação, limite o servidor a aceitar mensagens apenas do host local.

Agora, se você concordar, o cron enviará e-mails com a saída do script. Se você quiser apenas receber mensagens quando algo der errado, adicione códigos de saída ao script e verifique-os no crontab: if /backup/script >/tmp/bkup.txt; then cat /tmp/bkup.txt; fi . Ou, se você quiser enviar a saída para outra caixa de correio, escreva ...then mail me@somewhere </tmp/bkup; fi

E mesmo que você ainda não goste dessa ideia, use ssmtp para enviar e-mails de maneira semelhante:)

    
por 14.12.2011 / 07:08