Email ao Finalizar Script. [RESOLVIDO]

1. Email ao Finalizar Script. [RESOLVIDO]

natha
ncampos

(usa Debian)

Enviado em 26/02/2015 - 13:45h

Boa tarde,
Tenho um simples Script executado pelo Crontab com função de copia em rede,de um servidor local a uma maquina com pasta compartilhada em rede local,gostaria de incluir nele a opção de enviar E-mail com mensagem de aviso em caso de erro ou não localizar destino da copia ou ate memso arquivo estar corrompido).

abaixo minha formula:
#####################
#!/bin/bash
cp /home/backup/backup-base-diario/segunda-feira/base_tarde_segunda-feira.fbk /mnt/copia_automatica_backup_base/segunda-feira/

#############


  


2. Re: Email ao Finalizar Script. [RESOLVIDO]

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 26/02/2015 - 14:47h

Vc vai precisar d instalar 2 aplicativos: um MTA (postfix, sendmail etc.) e um cliente de e-mail em modo texto (gosto do mailx). Configure o seu MTA para fazer relay com algum MTA válido (pode ser um SMTP do Google, por exemplo) e coloque o seu script dessa forma pra enviar:


#!/bin/bash
cp /home/backup/backup-base-diario/segunda-feira/base_tarde_segunda-feira.fbk /mnt/copia_automatica_backup_base/segunda-feira/ && mailx -v -r "remetente@dominio.com" -s "Meu assunto" -a anexo.doc destinatario@dominio.com < "/home/usuario/corpo_da_mensagem.txt"


Como fazer um relay com Postfix, por exemplo (em inglês):

https://rtcamp.com/tutorials/linux/ubuntu-postfix-gmail-smtp/


3. Re: Email ao Finalizar Script. [RESOLVIDO]

Benedito
bmarquesm

(usa Fedora)

Enviado em 26/02/2015 - 16:40h

Você poderia ver o resultado do comando, para ver se houve sucesso (0) ou não (1). Para fazer isso, basta checar a variável $? do linux, que checa se o último comando dado ocorreu com sucesso ou não. Seguem as modificações necessárias:


== Novo script ==

root@NOTECCE:/usr/local/sbin# cat script.sh
#!/bin/bash
cp /home/backup/backup-base-diario/segunda-feira/base_tarde_segunda-feira.fbk /mnt/copia_automatica_backup_base/segunda-feira/


#TESTANDO SE A CÓPIA OCORREU COM SUCESSO

if [ "$?" -eq 0 ]; then
echo "Backup concluído com sucesso!" | mutt -s "Backup concluído." destinatario@dominio.com.br

else
echo "Ocorreu algum erro no processo de backup!" | mutt -s "Erro ao efetuar o backup do sistema." destinatario@dominio.com.br

fi
root@NOTECCE:/usr/local/sbin#


Para que o comando mutt acima funcione, você precisa configurar uma conta de algum servidor de e-mail no seu ~/.muttrc (Configurei uma conta do gmail fictícia). Para tal, defina as variáveis de ambiente abaixo (usei o arquivo .bashrc do meu usuário):

root@NOTECCE:/usr/local/sbin# tail -n 12 /home/usuario/.bashrc
# Nome do Remetente
realname="Fulano"
# Email do Remetente
from="remetente@gmail.com;"
#Usuario da conta de email
my_user=remetente@gmail.com
# Senha da conta de email
my_pass='senha12345'
# Autenticacao no servidor smtp de email, nesse caso do gmail.com
smtp_url=smtps://$my_user:$my_pass@smtp.gmail.com
# Camada de segurança, requerida pelo gmail.com
ssl_force_tls=yes


4. Re: Email ao Finalizar Script. [RESOLVIDO]

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 27/02/2015 - 10:25h

bmarquesm escreveu:

Você poderia ver o resultado do comando, para ver se houve sucesso (0) ou não (1). Para fazer isso, basta checar a variável $? do linux, que checa se o último comando dado ocorreu com sucesso ou não. Seguem as modificações necessárias:


== Novo script ==

root@NOTECCE:/usr/local/sbin# cat script.sh
#!/bin/bash
cp /home/backup/backup-base-diario/segunda-feira/base_tarde_segunda-feira.fbk /mnt/copia_automatica_backup_base/segunda-feira/


#TESTANDO SE A CÓPIA OCORREU COM SUCESSO

if [ "$?" -eq 0 ]; then
echo "Backup concluído com sucesso!" | mutt -s "Backup concluído." destinatario@dominio.com.br

else
echo "Ocorreu algum erro no processo de backup!" | mutt -s "Erro ao efetuar o backup do sistema." destinatario@dominio.com.br

fi
root@NOTECCE:/usr/local/sbin#


Para que o comando mutt acima funcione, você precisa configurar uma conta de algum servidor de e-mail no seu ~/.muttrc (Configurei uma conta do gmail fictícia). Para tal, defina as variáveis de ambiente abaixo (usei o arquivo .bashrc do meu usuário):

root@NOTECCE:/usr/local/sbin# tail -n 12 /home/usuario/.bashrc
# Nome do Remetente
realname="Fulano"
# Email do Remetente
from="remetente@gmail.com;"
#Usuario da conta de email
my_user=remetente@gmail.com
# Senha da conta de email
my_pass='senha12345'
# Autenticacao no servidor smtp de email, nesse caso do gmail.com
smtp_url=smtps://$my_user:$my_pass@smtp.gmail.com
# Camada de segurança, requerida pelo gmail.com
ssl_force_tls=yes


Não sei se vc sabe, mas o símbolo && faz exatamente o teste, evitando q vc crie um script d teste pra isso, pois ele só vai executar o segundo comando se o primeiro for executado com sucesso.




5. Re: Email ao Finalizar Script. [RESOLVIDO]

Benedito
bmarquesm

(usa Fedora)

Enviado em 28/02/2015 - 09:57h

Sei sim, até uso ele muitas vezes na instalação de pacotes no Debian (aptitude update && aptitude install pacote), porém coloquei o $? no script porque ai achei melhor de estruturar dentro do script e isso faz com que o ncampos receba a notificação por e-mail, mesmo quando houver falha na cópia.


6. resp

natha
ncampos

(usa Debian)

Enviado em 02/03/2015 - 16:43h

renato_pacheco escreveu:

Vc vai precisar d instalar 2 aplicativos: um MTA (postfix, sendmail etc.) e um cliente de e-mail em modo texto (gosto do mailx). Configure o seu MTA para fazer relay com algum MTA válido (pode ser um SMTP do Google, por exemplo) e coloque o seu script dessa forma pra enviar:


#!/bin/bash
cp /home/backup/backup-base-diario/segunda-feira/base_tarde_segunda-feira.fbk /mnt/copia_automatica_backup_base/segunda-feira/ && mailx -v -r "remetente@dominio.com" -s "Meu assunto" -a anexo.doc destinatario@dominio.com < "/home/usuario/corpo_da_mensagem.txt"


Como fazer um relay com Postfix, por exemplo (em inglês):

https://rtcamp.com/tutorials/linux/ubuntu-postfix-gmail-smtp/



Obrigado pela atenção Renato,vou testar aqui e retorno com o resultado.acredito que vai 100% como preciso!









Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts