Duvida em caso de falhas

1. Duvida em caso de falhas

natha
ncampos

(usa Debian)

Enviado em 24/01/2017 - 11:38h

Possuo um script de backup de um banco de dados, efetuei complemento para que a saida do log seja enviada para meu e-mail .
Desejo que seja enviado e-mail SOMENTE COM ERROS/FALHAS na execução dos comandos ou processo , hoje ele envia COM ou SEM erros.
NAO ESTOU CONSEGUINDO FAZER O SCRIPT ABORTAR O RESTANTE DO PROCESSO NO CASO DE FALHAS,E ENVIAR O AVISO.
(normalmente se o comando 1 funcionar o restante terá sucesso), devido alta quantidade de e-mail é melhor o alerta somente no caso de erros.

Alguma dica como posso melhorar ?
exemplo:

echo " --------------------------------------------------- " > $LOG
echo " Backup de $ORIGEM iniciado as $HORAMINUTO em $DIAMESANO " >> $LOG
echo " --------------------------------------------------- " >> $LOG

if
(MEU COMANDO DE BACKUP 1 ) >> $LOG 2>> $LOG
(MEU COMANDO DE BACKUP 2 ) >> $LOG 2>> $LOG
(MEU COMANDO DE BACKUP 3 ) >> $LOG 2>> $LOG
(MEU COMANDO DE BACKUP 4 ) >> $LOG 2>> $LOG
then
# LOG COM INFORMACAO DE PROCESSO
DIAMESANO=$(date +"%d/%m/%Y")
HORAMINUTO=$(date +"%Hh%M-%S")
echo " --------------------------------------------------- " >> $LOG
echo " Backup de $ORIGEM realizado com sucesso as $HORAMINUTO em $DIAMESANO " >> $LOG
echo " --------------------------------------------------- " >> $LOG

else

# LOG COM INFORMACAO DE PROCESSO
DIAMESANO=$(date +"%d/%m/%Y")
HORAMINUTO=$(date +"%Hh%M-%S")
echo " ################################################################## " >> $LOG
echo " Ocorreu um erro durante o backup de $ORIGEM as $HORAMINUTO em $DIAMESANO " >> $LOG
echo " ################################################################## " >> $LOG

fi

MEU COMANDO DE ENVIO DE EMAIL < $LOG


  


2. Re: Duvida em caso de falhas

Paulo Vianna
quartodazona

(usa Debian)

Enviado em 24/01/2017 - 13:24h

Onde está o resto do código? Aí só tem "echo" para ele mostrar mensagens. É necessário ver todo o script para entender onde deverá ser feita esta modificação.


3. Re: Duvida em caso de falhas

natha
ncampos

(usa Debian)

Enviado em 24/01/2017 - 17:07h

quartodazona escreveu:

Onde está o resto do código? Aí só tem "echo" para ele mostrar mensagens. É necessário ver todo o script para entender onde deverá ser feita esta modificação.


#!/bin/bash
# Script de Backup e Restauração Banco de Dados Firebird

DIAMESANO=$(date +"%d/%m/%Y")
HORAMINUTO=$(date +"%Hh%M-%S")
gfix="/opt/firebird/bin/gfix"
gbak="/opt/firebird/bin/gbak"
banco_original="/home/dados/base1.fdb"
banco_renomeado="/home/dados/banco_renomeado.fdb"
banco_fbk="/home/dados/banco.fbk"
copia_seg_fdb="/home/dados/base$(date +"%d-%m-%Y").fdb"
userpw="-user SYSDBA -pass masterkey"
LOG="/home//dados/log_processo_bkp_restore.txt"
LOG2="/home/dados/log_execucao_bkp_restore.txt"

echo " --------------------------------------------------- " > $LOG
echo " ANEXO LOG DO PROCESSO,LOGO ABAIXO RELATORIO DA EXECUCAO. " >> $LOG
echo " PROCESSO DE BKP/RESTORE INICIADO AS $HORAMINUTO em $DIAMESANO " >> $LOG
echo " --------------------------------------------------- " >> $LOG
echo " -- Iniciado copia de Segurança de $banco_original para $copia_seg_fdb as $HORAMINUTO em $DIAMESANO --" >> $LOG

if

DIAMESANO=$(date +"%d/%m/%Y") HORAMINUTO=$(date +"%Hh%M-%S")
cp -R $banco_original $copia_seg_fdb > $LOG2 2>> $LOG2
echo " ## Finalizado copia de Segurança de $dir_banco/$banco para $copia_seg as $HORAMINUTO em $DIAMESANO --" >> $LOG
echo " --------------------------------------------------- " >> $LOG

DIAMESANO=$(date +"%d/%m/%Y") HORAMINUTO=$(date +"%Hh%M-%S")
echo " -- Movendo $banco_original para $banco_renomeado as $HORAMINUTO em $DIAMESANO --" >> $LOG
mv -v $banco_original $banco_renomeado >> $LOG2 2>> $LOG2
echo " --------------------------------------------------- " >> $LOG

DIAMESANO=$(date +"%d/%m/%Y") HORAMINUTO=$(date +"%Hh%M-%S")
echo " -- Finaliza transações pendentes as $HORAMINUTO em $DIAMESANO --" >> $LOG
$gfix -commit all $banco_renomeado $userpw >> $LOG2 2>> $LOG2
echo " --------------------------------------------------- " >> $LOG

DIAMESANO=$(date +"%d/%m/%Y") HORAMINUTO=$(date +"%Hh%M-%S")
echo " -- Desligando banco de dados as $HORAMINUTO em $DIAMESANO --" >> $LOG
$gfix -shut -force 0 $banco_renomeado $userpw >> $LOG2 2>> $LOG2
echo " --------------------------------------------------- " >> $LOG

DIAMESANO=$(date +"%d/%m/%Y") HORAMINUTO=$(date +"%Hh%M-%S")
echo " -- Realiza limpeza do banco as $HORAMINUTO em $DIAMESANO --" >> $LOG
$gfix -sweep $banco_renomeado $userpw >> $LOG2 2>> $LOG2
echo " --------------------------------------------------- " >> $LOG

DIAMESANO=$(date +"%d/%m/%Y") HORAMINUTO=$(date +"%Hh%M-%S")
echo " -- Verificando erros as $HORAMINUTO em $DIAMESANO --" >> $LOG
$gfix -v -f $banco_renomeado $userpw >> $LOG2 2>> $LOG2

echo " --------------------------------------------------- " >> $LOG

DIAMESANO=$(date +"%d/%m/%Y") HORAMINUTO=$(date +"%Hh%M-%S")
echo " -- Realizando backup as $HORAMINUTO em $DIAMESANO --" >> $LOG
$gbak -backup -garbage -limbo -ignore -v -t $banco_renomeado $banco_fbk $userpw >> $LOG2 2>> $LOG2

echo " --------------------------------------------------- " >> $LOG

DIAMESANO=$(date +"%d/%m/%Y") HORAMINUTO=$(date +"%Hh%M-%S")
echo " -- Restaurando Backup as $HORAMINUTO em $DIAMESANO --" >> $LOG
$gbak -r -t -v -p 8192 -v $banco_fbk $banco_renomeado $userpw >> $LOG2 2>> $LOG2
echo " --------------------------------------------------- " >> $LOG

DIAMESANO=$(date +"%d/%m/%Y") HORAMINUTO=$(date +"%Hh%M-%S")
echo " -- Movendo $banco_renomeado para $banco_original as $HORAMINUTO em $DIAMESANO --" >> $LOG
mv -v $banco_renomeado $banco_original >> $LOG2 2>> $LOG2
echo " --------------------------------------------------- " >> $LOG

DIAMESANO=$(date +"%d/%m/%Y") HORAMINUTO=$(date +"%Hh%M-%S")
echo " -- Iniciando o Banco as $HORAMINUTO em $DIAMESANO --" >> $LOG
$gfix -online $banco_original $userpw >> $LOG2 2>> $LOG2
echo " --------------------------------------------------- " >> $LOG

DIAMESANO=$(date +"%d/%m/%Y") HORAMINUTO=$(date +"%Hh%M-%S")
echo " -- Remove Arquivos de Cache do processo $HORAMINUTO em $DIAMESANO --" >> $LOG
rm -rf $banco_fbk >> $LOG2 2>> $LOG2

then

DIAMESANO=$(date +"%d/%m/%Y") HORAMINUTO=$(date +"%Hh%M-%S")
echo " --------------------------------------------------- " >> $LOG
echo " PROCESSO DE BKP/RESTORE FINALIZADO AS $HORAMINUTO em $DIAMESANO " >> $LOG
echo " --------------------------------------------------- " >> $LOG

DIAMESANO=$(date +"%d/%m/%Y") HORAMINUTO=$(date +"%Hh%M-%S")
echo " ################################################### " >> $LOG
echo " -- Banco de dados disponibilizado as $HORAMINUTO em $DIAMESANO --" >> $LOG
echo " -- Efetuado permissao de acesso Chmod 0777 as $HORAMINUTO em $DIAMESANO --" >> $LOG
chmod 777 $banco_original
chmod 777 $LOG $LOG2

else

DIAMESANO=$(date +"%d/%m/%Y") HORAMINUTO=$(date +"%Hh%M-%S")
echo " ERRO AO PROCESSAR TAREFA em $HORAMINUTO em $DIAMESANO " >> $LOG

fi

############################### ENVIO DE EMAIL ###################################################

REMETENTE='email@.com'
SENHA='senha'
SRV_SAIDA='smtp.smtp.com.br'
PORTA='587'
DESTINATARIO='fulano@empresa.com.br'
sendEmail -f $REMETENTE -t $DESTINATARIO -u "LOG BACKUP/RESTORE (AP Araucarias)" -m < $LOG -a $LOG2 -s $SRV_SAIDA:$PORTA -o tls=no -xu $REMETENTE -xp $SENHA

exit






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts