Backup, compactação, verificação e transferência de arquivos

Publicado por G. Magalhaes (última atualização em 23/07/2018)

[ Hits: 3.703 ]

Download 6866.vivaobackup.sh




Saudações a todos!

Script para backup, compactação, verificação e transferência de arquivo para outra máquina na rede com geração de log enviado por email. Sistemas CentOS 7 32 bits (sim, existem CentOS 7 32 bits!) com Firebird 2.56 versão SuperServer.

Vamos criar nomes padronizados no estilo $ano$mes$dia'Bk'$Diadasemana para serem usados em bases de dados Firebird, gerar um backup destas, compactá-la e enviar o arquivo compactado via rede para outra máquina tudo isso acompanhado de um log que ficará na máquina local e será também enviado via e-mail.

O arquivo original estará no formato .FDB o seu backup estará no formato GBK e este será compactado no formato 7z o qual será transferido para um compartilhamento em rede onde será descompactado e a base restaurada, esta segunda etapa, no outro computador estará, em breve, em outro artigo.

Usei configurações de compactação que geram arquivos 7z menores que 5% do tamanho do .FDB, claro, considerando a minha base de dados de produção que é de 7 Gbytes e foi para 199 Mbytes.

São feitos alguns testes de conectividade, montagem e desmontagem de caminhos de rede e de criação de pastas.

Pre-requisitos:

- CentOS 7 32 bits (espero publicar em breve um artigo de como instalar o desconhecido CentOS 32bits. Deve funcionar no 64 bits normalmente, mas não testei, faça-o por sua conta e risco)
- Firebird SuperServer (no CentOS 32 bits não é automática a instalação já o CentOS 32 bits não possui os repositórios padrões e isso também será abordado no artigo de instalação do CentOS 32 bits)
- 7zip
- mail
- Samba

Ressalvas:

1) Usei este script por muito tempo e nunca tive nenhum problema e tentei cercar algumas eventuais mensagens de erro/alertas do Firebird, mesmo assim use-o por sua conta e risco, se der algum problema não tenho culpa não ;-) ! Claro nunca se deve testar na base de produção antes de ter certeza do que está fazendo.

2) Algumas partes estão muito repetidas, pois inicialmente este script seria lido por um outro script então precisava de acesso à saída (exit) e não tive tempo de colocar de uma forma menos "macarrone".

3) Lembre-se de adicionar o script ao seu crontab. No meu caso usei, como root o comando "crontab -e". Ao tentar editar o /etc/crontab não deu certo, mas não procurei entender o porquê. --> crontab -e --> 00 22 * * MON-SAT /root/vivaobackup.sh

Abraços a todos!

  



Esconder código-fonte

#Script para backup, compactação, verificação e transferência de arquivo para outra máquina na rede com geração de log enviado por email. Sistemas Centos 7 32 Bits (sim, existem Centos 7 32 bits!) com Firebird 2.56 versão SuperServer.

#Autor AgOfEarth submetido ao Viva o Linux - https://www.vivaolinux.com.br/ em 23 de julho de 2018.

#Vamos criar nomes padronizados no estilo $ano$mes$dia'Bk'$Diadasemana para serem usados em bases de dados firebird gerar um backup destas, compactá-la e enviar o arquivo compactado via rede para outra máquina tudo isso acompanhado de um log que ficará na máquina local e será também enviado via e-mail.

#O arquivo original estará no formato .FDB o seu Back-up estará no formato GBK e este será compactado no formato 7z o qual será transferido para um compartilhamento em rede onde será descompactado e a base restaurada, esta segunda etapa, no outro computador estará, em breve, em outro artigo.

#Usei configurações de compactação que geram arquivos 7z menores que 5% do tamanho do .FDB, claro, considerando a minha base de dados de produção que é de 7 Gbytes e foi para 199 Mbytes.

#São feitos alguns testes de conectividade, montagem e desmontagem de caminhos de rede e de criação de pastas.




#Pre-Requisitos:
#- Centos 7 32 bits (espero publicar em breve um artigo de como instalar o desconhecido Centros 32bits. Deve funcionar no 64 bits normalmente, mas não testei, faça-o por sua conta e risco.)
#- Firebird SuperServer ( no Centos 32 bits não é automática a instalação já que o CENTOS 32 bits não possui os repositórios padrões e isso também será abordado no artigo de instalação do CENTOS 32 bits)
#- 7zip
#- mail
#- Samba

#Ressalvas: 

#1) Usei este script por muito tempo e nunca tive nenhum problema e tentei cercar algumas eventuais mensagens de erro/alertas do Firebird, mesmo assim use-o por sua conta e risco, se der algum problema não tenho culpa não ;-) ! Claro nunca se deve testar na base de produção antes de ter certeza do que está fazendo.

#2) Algumas partes estão muito repetidas, pois inicialmente este script seria lido por um outro script então precisava de acesso à saída (exit) e não tive tempo de colocar de uma forma menos "macarrone"

#3) Lembre-se de adicionar o script ao seu crontab. No meu caso usei, como root o comando "crontab -e". Ao tentar editar o /etc/crontab não deu certo, mas não procurei entender o porquê. --> crontab -e --> 00 22 * * MON-SAT /root/vivaobackup.sh

#!/bin/bash

INICIO=`date +%Y/%m/%d-%H:%M:%S`

#Comandos não devem ser enviados para $LOG, mas para outros arquivos intermediarios reconhece-se tais comandos pela sequência &>

#Modo detalhado
# Se quisermos verificar em detalhes como foi executado o comando gbak mude a variável abaixo para 1
modo_detalhado=0

#===================== VERIFICA A EXISTENCIA DE ARQUIVO DE LOG, SE EXISTE É REMOVIDO=======================================

if [ -e /root/`date +%Y-%m-%d`.txt ];
then
   rm -rf /root/`date +%Y-%m-%d`.txt
fi
#===================== FIM VERIFICA A EXISTENCIA DE ARQUIVO DE LOG, SE EXISTE É REMOVIDO =======================================
echo -n "" > /root/`date +%Y-%m-%d`.txt
LOG=/root/`date +%Y-%m-%d`.txt
echo -n "" > /root/log_temp.txt
LOG_temp=/root/log_temp.txt

ANO=`date +%Y`
MES=`date +%m`
DIA=`date +%d` 
DIA_SEMANA=`date +%w`
HORA=`date +%H`
MINUTO=`date +%M`
SEGUNDO=`date +%S`
case $DIA_SEMANA in
0) DIA_SEMANA='Domingo';
;;
1) DIA_SEMANA='Segunda';
;;
2) DIA_SEMANA='Terca';
;;
3) DIA_SEMANA='Quarta';
;;
4) DIA_SEMANA='Quinta';
;;
5) DIA_SEMANA='Sexta';
;;
6) DIA_SEMANA='Sabado';
;;
esac

if [ -e /usr/bin/7z ]
then
   compactador=1
   #echo -e "Compactador = $compactador"
else
   if [ -e /usr/bin/7za ]
   then
      compactador=2
   #   echo -e "Compactador = $compactador"
   else
      compactador=3
   #   echo -e "Compactador = $compactador"
   fi
fi
DATA_INICIAL=`echo $ANO'/'$MES'/'$DIA', '$DIA_SEMANA'-feira'`

IP_LOCAL=$(hostname -i)


   prefixo=`echo $ANO$MES$DIA'Bk'$DIA_SEMANA`
   pasta_arquivo_original_fdb=`echo '/PASTA/'`
   arquivo_original_fdb=`echo 'NOME_DA_EMPRESA.fdb'`
   PASTA_LOCAL_BACKUP=`echo '/OUTRA_PASTA/'`

caminho_arquivo_original_fdb=`echo $pasta_arquivo_original_fdb$arquivo_original_fdb`
#echo -e "caminho_arquivo_original_fdb: $caminho_arquivo_original_fdb"

arquivo_intermediario_gbk=`echo $prefixo'.gbk'`
#echo -e "arquivo_intermediario_gbk: $arquivo_intermediario_gbk"

caminho_arquivo_intermediario_gbk=`echo $PASTA_LOCAL_BACKUP$arquivo_intermediario_gbk`
#echo -e "caminho_arquivo_intermediario_gbk: $caminho_arquivo_intermediario_gbk"

arquivo_final_7z=`echo $prefixo'.7z'`
#echo -e "arquivo_final_7z: $arquivo_final_7z"

caminho_arquivo_final_7z=`echo $PASTA_LOCAL_BACKUP$arquivo_final_7z`
#echo -e "caminho_arquivo_final_7z: $caminho_arquivo_final_7z"

IP_RECEBE_COPIA_BACKUP=`echo '123.123.123.70'`

DRIVE_DE_REDE_PARA_BACKUP=`echo '//'$IP_RECEBE_COPIA_BACKUP'/bk/'`
#echo -e "DRIVE_DE_REDE_PARA_BACKUP: $DRIVE_DE_REDE_PARA_BACKUP"

PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE=`echo '/mnt/'$ANO$MES$DIA$HORA$MINUTO$SEGUNDO'/'`
#echo -e "PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE: $PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE"

PASTA_NO_DRIVE_DE_REDE_PARA_RECEBER_BACKUP=`echo $PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE'tmp_7z/'`
#echo -e "PASTA_DE_MONTADA_NO_PONTO_DE_REDE_PARA_BACKUP: $PASTA_NO_DRIVE_DE_REDE_PARA_RECEBER_BACKUP"

if [ -e $caminho_arquivo_original_fdb ]
then
   chmod 777 $caminho_arquivo_original_fdb
   chown firebird.firebird $caminho_arquivo_original_fdb
else

      echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] *** Essa tarefa nao eh um teste e envolve o calculo de Direitos Autorais e o arquivo $arquivo_original_fdb nao foi localizado. VERIFIQUE ONDE ESTAH O ARQUIVO. SE ESTIVER TENTANDO FAZER UM TESTE FORA DO AMBIENTE DE TESTE CUIDADO PARA NAO SOBRESCREVER O ARQUIVO $arquivo_original_fdb ou o ARQUIVO `echo $pasta_arquivo_original_fdb'DA'$arquivo_orginal_fdb` NO SERVIDOR DE PRODUCAO!***" >> $LOG

   echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] *** Nao existe $caminho_arquivo_original_fdb e verifique o que está acontecendo! ***" >> $LOG
   echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] FINALIZADO SEM CONCLUIR NENHUMA TAREFA!" >> $LOG
   ASSUNTO="$ANO/$MES/$DIA, $DIA_SEMANA-feira - Nao foi possivel criar O BACK-UP."
   MENSAGEM="Assunto: $ASSUNTO \nEMAIL_FROM: $EMAIL_FROM \nEMAIL_TO $EMAIL_TO"
   tr  X < $LOG | mail -s "$ASSUNTO" -cEMAIL1@dominio.NOME_DA_EMPRESA.br,EMAIL2@dominio.NOME_DA_EMPRESA.br EMAIL3@dominio.NOME_DA_EMPRESA.br
   exit 1001
fi
   echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] Inciciando back-up do $caminho_arquivo_original_fdb - $DATA_INICIAL, no servidor $IP_LOCAL NOVO!" >> $LOG

#=================== PARANDO SERVIÇOS ANTES DE COMEÇAR O BACK-UP ===============================================================
systemctl stop smb | echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] Compartilhamento parado......................: systemctl stop smb" >> $LOG
systemctl restart firebird-superserver | echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] Firebird reiniciado..........................: systemctl firebird-superserver restart" >> $LOG

#=================== FIM PARANDO SERVIÇOS ANTES DE COMEÇAR O BACK-UP ===============================================================
#=================== BACK-UP
echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] Iniciando backup..." >> $LOG
   echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] $caminho_arquivo_original_fdb" >> $LOG
LOG_gfix1=/root/log_gfix1.txt
gfix -user SYSDBA -password SEGREDO -shut single -force 1 $caminho_arquivo_original_fdb &> $LOG_gfix1
if [ $? -eq 0 ]
then
   echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] Fechando o banco de da dados $caminho_arquivo_original_fdb................: gfix -user SYSDBA -password OCULTA -shut single -force 1 $caminho_arquivo_original_fdb" >> $LOG
   cat $LOG $LOG_gfix1 > $LOG_temp
   cat $LOG_temp > $LOG
   rm -rf $LOG_temp
   rm -rf $LOG_gfix1
   ERRO_gfix1=0
else
   echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] Falhou a tentativa de fechar o banco de dados $caminho_arquivo_original_fdb................: gfix -user SYSDBA -password OCULTA -shut single -force 1 $caminho_arquivo_original_fdb" >> $LOG
   echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] DEVERAH SER FEITO BACK-UP MANUAL" >> $LOG
   echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] FINALIZADO SEM CONCLUIR TODAS AS TAREFAS" >> $LOG
   cat $LOG $LOG_gfix1 > $LOG_temp
   cat $LOG_temp > $LOG
   rm -rf $LOG_temp
   rm -rf $LOG_gfix1
   ERRO_gfix1=1
   ASSUNTO="$ANO/$MES/$DIA, $DIA_SEMANA-feira - Erro ao tentar fechar o banco de dados."
   MENSAGEM="Assunto: $ASSUNTO \nEMAIL_FROM: $EMAIL_FROM \nEMAIL_TO $EMAIL_TO"
   tr  X < $LOG | mail -s "$ASSUNTO" -cEMAIL1@dominio.NOME_DA_EMPRESA.br,EMAIL2@dominio.NOME_DA_EMPRESA.br EMAIL3@dominio.NOME_DA_EMPRESA.br
   exit 1006   
fi

LOG_gbak=/root/log_gbak.txt
if [ $modo_detalhado -eq 1 ]
then
   gbak -user SYSDBA -verify -password SEGREDO $caminho_arquivo_original_fdb $caminho_arquivo_intermediario_gbk &> $LOG_gbak
   testegbak=$?
else
   gbak -user SYSDBA -password SEGREDO $caminho_arquivo_original_fdb $caminho_arquivo_intermediario_gbk &> $LOG_gbak
   testegbak=$?
fi

if [ $testegbak -eq 0 ]
then
   echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] Iniciando backup.............................: gbak -user SYSDBA -password OCULTA $caminho_arquivo_original_fdb $caminho_arquivo_intermediario_gbk" >> $LOG
   cat $LOG $LOG_gbak > $LOG_temp
   cat $LOG_temp > $LOG
   rm -rf $LOG_temp
   rm -rf $LOG_gbak
   ERRO_gbak=0
else
   echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] Falhou a tentativa de fazer o back-up de $caminho_arquivo_original_fdb................: gbak -user SYSDBA -password OCULTA $caminho_arquivo_original_fdb $caminho_arquivo_intermediario_gbk" >> $LOG   
   echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] DEVERAH SER FEITO BACK-UP MANUAL" >> $LOG
   echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] FINALIZADO SEM CONCLUIR TODAS AS TAREFAS" >> $LOG
   cat $LOG $LOG_gbak > $LOG_temp
   cat $LOG_temp > $LOG
   rm -rf $LOG_temp
   rm -rf $LOG_gbak
   ERRO_gbak=1
   ASSUNTO="$ANO/$MES/$DIA, $DIA_SEMANA-feira - Erro em Gbak ao tentar fazer o backup banco de dados."
   MENSAGEM="Assunto: $ASSUNTO \nEMAIL_FROM: $EMAIL_FROM \nEMAIL_TO $EMAIL_TO"
   tr  X < $LOG | mail -s "$ASSUNTO" -cEMAIL1@dominio.NOME_DA_EMPRESA.br,EMAIL2@dominio.NOME_DA_EMPRESA.br EMAIL3@dominio.NOME_DA_EMPRESA.br
   exit=1008
fi
   
   
LOG_gfix3=/root/log_gfix3.txt
gfix -user SYSDBA -password SEGREDO -online normal $caminho_arquivo_original_fdb &> $LOG_gfix3
if [ $? -eq 0 ]
then
   echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] Reabrindo o Banco de dados $caminho_arquivo_original_fdb....................: gfix -user SYSDBA -password OCULTA -online normal $caminho_arquivo_original_fdb" >> $LOG
   cat $LOG $LOG_gfix3 > $LOG_temp
   cat $LOG_temp > $LOG
   rm -rf $LOG_temp
   rm -rf $LOG_gfix3
   ERRO_gfix3=0
else
   echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] Falha ao tentar reabrir o Banco de dados $caminho_arquivo_original_fdb....................: gfix -user SYSDBA -password OCULTA -online normal $caminho_arquivo_original_fdb" >> $LOG   
   echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] EM PRINCIPIO O BANCO DE DADOS CRIADO NÃO ESTÁ CORROMPIDO, MAS VERIFICAR SE A RESTAURACAO FOI BEM SUCEDIDA!" >> $LOG
   cat $LOG $LOG_gfix3 > $LOG_temp
   cat $LOG_temp > $LOG
   rm -rf $LOG_temp
   rm -rf $LOG_gfix3
   ERRO_gfix3=1
fi
   
      

#================== FIM BACK-UP
#=================== INICIANDO SERVIÇOS APÓS O BACK-UP ===============================================================
   systemctl start smb | echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] Compartilhamento Reiniciado..................: systemctl start smb" >> $LOG
   
   systemctl start firebird-superserver | echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] Firebird reiniciado..........................: systemctl firebird-superserver restart" >> $LOG
#=================== FIM INICIANDO SERVIÇOS APÓS O BACK-UP ===========================================================
if [ -e $caminho_arquivo_intermediario_gbk ];
then
   echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] ARQUIVO DE BACKUP CRIADO COM EXITO!" >> $LOG
   ERRO_BACKUP=0
else

   echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`]  ARQUIVO $caminho_arquivo_intermediario_gbk que teria sido criado não foi localizado. Verifique o que está ocorrendo." >> $LOG 
   ERRO_BACKUP=1
fi
#=================== COMPACTANDO O ARQUIVO DE BACK-UP GERADO =========================================================
if [ -e $caminho_arquivo_intermediario_gbk ]
then
   echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] Iniciando compactacao para transferencia....." >> $LOG
#=================== REMOVE SE JA EXISTE UM ARQUIVO COMPACTADO, NESTE CASO PODERIA SER UM ERRO DE COMPACTACAO
   if [ -e $caminho_arquivo_final_7z ]
   then
      rm -f $caminho_arquivo_final_7z
   fi
#=================== FIM REMOVE SE JA EXISTE UM ARQUIVO COMPACTADO, NESTE CASO PODERIA SER UM ERRO DE COMPACTACAO
   LOG_7z=/root/log_7z.txt
   echo -e "--------------------------------------------------------------------" >> $LOG
   echo -e "++++++++++++++++++++++ INICIO DO LOG DE COMPACTACAO 7z +++++++++++++" >> $LOG
   echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] INICIO DA COMPACTACAO!" >> $LOG_7z
   
   if [ $compactador -eq 1 ]
   then
         7z a -aoa -t7z -m0=lzma -mx=9 $caminho_arquivo_final_7z $caminho_arquivo_intermediario_gbk &> $LOG_7z
         echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] 7z a -aoa -t7z -m0=lzma -mx=9 $caminho_arquivo_final_7z $caminho_arquivo_intermediario_gbk &> $LOG_7z" >> $LOG
   else
      if [ $compactador -eq 2 ]
      then
         7za a -aoa -t7z -m0=lzma -mx=9 $caminho_arquivo_final_7z $caminho_arquivo_intermediario_gbk &> $LOG_7z
         echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] 7za a -aoa -t7z -m0=lzma -mx=9 $caminho_arquivo_final_7z $caminho_arquivo_intermediario_gbk &> $LOG_7z" >> $LOG
      else
         echo -e "NAO FOI LOCALIZANDO NEM O COMPACTADOR 7Z NEM O 7ZA, VERIFIQUE!!!" >> $LOG
      fi
   fi
   
#================== REMOVENDO CARACTERES NÃO PADRÃO, CASO CONTRARIO NÃO SERIA POSSÍVEL ENVIAR O LOG NO CORPO DA MENSAGEM
   tr -s  ' ' < $LOG_7z > /root/log_7z_UNIX.txt
   rm -rf /root/log_7z.txt
#================== FIM REMOVENDO CARACTERES NÃO PADRÃO, CASO CONTRARIO NÃO SERIA POSSÍVEL ENVIAR O LOG NO CORPO DA MENSAGEM
   cat $LOG /root/log_7z_UNIX.txt > $LOG_temp
   rm -rf /root/log_7z_UNIX.txt
   echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] FIM DA COMPACTACAO!" >> $LOG_temp
   echo -e "++++++++++++++++++++++ FIM DO LOG DE COMPACTACAO 7z+++++++++++++++++" >> $LOG_temp
   cat $LOG_temp > $LOG
   rm -rf $LOG_temp
   ERRO_COMPACTACAO=0
else
   echo -e "++++++++++++++++++++++ NAO FOI POSSIVEL COMPACTAR 7z, POIS O BACK-UP NAO FOI GERADO +++++++++++++++++++++++++++++++" >> $LOG   
   ERRO_COMPACTACAO=1
fi

if [ -e $caminho_arquivo_final_7z ]
then
   echo -e "++++++++++++++++++++++++++LOG do 7zip+++++++++++++++++++++++++++++++" >> $LOG
   echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] Verificando integridade do arquivo compactado..." >> $LOG
   LOG_un7z=/root/log_un7z.txt
   LOG_temp=/root/log_temp.txt
   if [ $compactador -eq 1 ]
   then
         7z t $caminho_arquivo_final_7z &> $LOG_un7z
         echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] 7z -t $caminho_arquivo_final_7z &> $LOG_un7z" >> $LOG
   else
      if [ $compactador -eq 2 ]
      then
         7za t $caminho_arquivo_final_7z &> $LOG_un7z
         echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] 7za -t $caminho_arquivo_final_7z &> $LOG_un7z" >> $LOG
      else
         echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] NÃO FOI LOCALIZANDO NEM O COMPACTADOR 7Z NEM O 7ZA, VERIFIQUE!!!" >> $LOG
      fi
   fi
   tr -d '\015' < $LOG_un7z > /root/log_un7z2.txt
   cat $LOG /root/log_un7z2.txt > $LOG_temp
   rm -f /root/log_un7z2.txt
   echo -e "++++++++++++++++++++++FIM DO LOG do 7z testando+++++++++++++++++" >> $LOG_temp

   if [ "$ERRO_COMPACTACAO" -eq 0 ]
   then
      echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] Nao foi localizado erro no processo de criacao do arquivo 7z, portanto, arquivo $caminho_arquivo_intermediario_gbk serah sendo excluido." >> $LOG   
      rm -rf $caminho_arquivo_intermediario_gbk
      if [ $? -eq 0 ]
      then
         echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] rm -rf $caminho_arquivo_intermediario_gbk" >> $LOG
      echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] Arquivo $caminho_arquivo_intermediario_gbk excluido com exito!" >> $LOG
      else
         echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] rm -rf $caminho_arquivo_intermediario_gbk" >> $LOG
         echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] NAO FOI POSSIVEL EXCLUIR O ARQUIVO $caminho_arquivo_intermediario_gbk, VERIFIQUE!" >> $LOG
      fi
   fi

   rm -rf $LOG_un7z
   rm -rf /root/log_un7z.txt
   cat $LOG_temp > $LOG
   rm -rf $LOG_temp
   LOG_temp=/root/log_temp.txt
else
   echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] NAO FOI POSSIVEL VERIFICAR A INTEGRIDADE DO ARQUIVO $caminho_arquivo_final_7z POIS ELE NÃO FOI LOCALIZADO! \n VERIFICAR ARQUIVO DE LOG: $LOG" >> $LOG
   echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] FINALIZADO SEM CONCLUIR TODAS AS TAREFAS" >> $LOG
   ASSUNTO="$ANO/$MES/$DIA, $DIA_SEMANA-feira - Nao foi possivel criar $caminho_arquivo_final_7z."
   MENSAGEM="Assunto: $ASSUNTO \nEMAIL_FROM: $EMAIL_FROM \nEMAIL_TO $EMAIL_TO"
   tr  X < $LOG | mail -s "$ASSUNTO" -cEMAIL1@dominio.NOME_DA_EMPRESA.br,EMAIL2@dominio.NOME_DA_EMPRESA.br EMAIL3@dominio.NOME_DA_EMPRESA.br
   exit=1009
fi
#Desmontando tudo em /mnt já que existe apenas este compartilhamento
umount /mnt/*

mkdir $PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE
if [ $? -eq 0 ]
then
   echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] mkdir $PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE" >> $LOG
   echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] Pasta para ponto de montagem criada com exito" >> $LOG
      echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] $PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE existe, verificando se ha algo montado nela..." >> $LOG
   if grep -qs $PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE /proc/mounts; then
      echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] $PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE existe e ha algo montado nela..." >> $LOG
      echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] tentando desmontar e verificando se foi desmontado" >> $LOG
      umount $PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE
      if [ $? -eq 0 ]
      then  #se a desmontagem foi be sucedida
         echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] Como esperado, nao ha nada montado no Compartilhamento $PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE"  >> $LOG
      else #se a desmontagem nao foi bem sucedida
         echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] Nao foi possivel desmontar. Criarei outra pasta para ser usada como ponto de montagem, mas serah enviado um e-mail de alerta sobre este ponto de montagem jah existente\n" >> $LOG
         ASSUNTO="$ANO/$MES/$DIA, $DIA_SEMANA-feira - Ponto de montagem ativo em $PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE."
         MENSAGEM="Assunto: $ASSUNTO \nEMAIL_FROM: $EMAIL_FROM \nEMAIL_TO $EMAIL_TO"
         tr  X < $LOG | mail -s "$ASSUNTO" -cEMAIL1@dominio.NOME_DA_EMPRESA.br,EMAIL2@dominio.NOME_DA_EMPRESA.br EMAIL3@dominio.NOME_DA_EMPRESA.br
         PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE=`echo /mnt/`date +%Y``date +%m``date +%d``date +%H``date +%M``date +%S``/``
      fi
   else #existe a pasta que será usada como ponto de montagem, mas como esperado o ponto de montagem nao está ativo
      echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] Como esperado não há nada montado em: $PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE"  >> $LOG
   fi
else
   echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] mkdir $PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE" >> $LOG
   echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] Pasta para ponto de montagem NÃO FOI criada. Back-Up Nao enviado!" >> $LOG
   echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] FINALIZADO SEM CONCLUIR TODAS AS TAREFAS" >> $LOG
   ASSUNTO="$ANO/$MES/$DIA, $DIA_SEMANA-feira - Nao foi possivel criar $PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE."
   MENSAGEM="Assunto: $ASSUNTO \nEMAIL_FROM: $EMAIL_FROM \nEMAIL_TO $EMAIL_TO"
   tr  X < $LOG | mail -s "$ASSUNTO" -cEMAIL1@dominio.NOME_DA_EMPRESA.br,EMAIL2@dominio.NOME_DA_EMPRESA.br EMAIL3@dominio.NOME_DA_EMPRESA.br
   exit 1010
fi

chmod 777 $PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE   
if [ $? -eq 0 ]   
then
echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] chmod 777 $PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE" >> $LOG
   echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] Permissão 777 atribuida com exito aa  pasta: $PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE" >> $LOG
else
   echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] chmod 777 $PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE" >> $LOG
   echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] Pasta criada, mas falha ao tentar alterar a permissão CHMOD. O back-up nao foi enviado!" >> $LOG
   echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] FINALIZADO SEM CONCLUIR TODAS AS TAREFAS" >> $LOG
   ASSUNTO="$ANO/$MES/$DIA, $DIA_SEMANA-feira - Back-up nao sera transferido pois nao foi possivel alterar a permissão de: $PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE."
   MENSAGEM="Assunto: $ASSUNTO \nEMAIL_FROM: $EMAIL_FROM \nEMAIL_TO $EMAIL_TO"
   tr  X < $LOG | mail -s "$ASSUNTO" -cEMAIL1@dominio.NOME_DA_EMPRESA.br,EMAIL2@dominio.NOME_DA_EMPRESA.br EMAIL3@dominio.NOME_DA_EMPRESA.br
   exit 1011
fi   

ping -q -c5 $IP_RECEBE_COPIA_BACKUP > /dev/null
if [ $? -eq 0 ]
then
   echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] O IP $IP_RECEBE_COPIA_BACKUP esta ligado e online, ou seja, responde ao Ping!">> $LOG
   echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] Verificando o Samba no Servidor $IP_LOCAL...">> $LOG
   systemctl status smb > /dev/null
   teste_smb=$?
   if [ $teste_smb -ne 0 ]
   then
      echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] Problemas no samba, ANALISANDO-O." >> $LOG
      if [ $teste_smb -eq 3 ]
      then
         echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] O samba estava parado por algum motivo, tentando reinicia-lo: systemctl restart smb" >> $LOG
         systemctl restart smb
         if [ $? -eq 0 ]
         then
            echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] O samba foi reiniciado, prosseguindo..." >> $LOG
         else
            echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] Incapaz de reiniciar o Samba, PROBLEMA NO SERVIDOR, O ARQUIVO NÃO SERÁ ENVIADO" >> $LOG
            echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] FINALIZADO SEM CONCLUIR TODAS AS TAREFAS" >> $LOG
            ASSUNTO="$ANO/$MES/$DIA, $DIA_SEMANA-feira - ERRO NO COMANDO SAMBA Nao foi possivel transferir "$caminho_arquivo_final_7z" para $DESTINO_DE_REDE_DO_BACKUP montado em $PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE"
            MENSAGEM="Assunto: $ASSUNTO \nEMAIL_FROM: $EMAIL_FROM \nEMAIL_TO $EMAIL_TO"
            tr  X < $LOG | mail -s "$ASSUNTO" -cEMAIL1@dominio.NOME_DA_EMPRESA.br,EMAIL2@dominio.NOME_DA_EMPRESA.br EMAIL3@dominio.NOME_DA_EMPRESA.br
            exit 1013            
         fi
      fi
   else
      echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] O Samba em $IP_LOCAL está rodando normalmente" >> $LOG
   fi
#=======================JÁ QUE O SERVIDOR QUE RECEBERÁ O BACK-UP ESTÁ ON LINE E O SAMBA ESTÁ RODANDO NORMALMENTE, MONTAR E COPIAR
   echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] Tentando desmontar todos os drivers de rede em /mnt/" >> $LOG
   mount  -t cifs $DRIVE_DE_REDE_PARA_BACKUP  $PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE -o user=root,pass=OUTRO_SEGREDO,rw,iocharset=utf8,file_mode=0777,file_mode=0777
   if [ $? -eq 0 ]   
   then
      echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] mount  -t cifs $DESTINO_DE_REDE_DO_BACKUP $PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE -o user=root,pass=SENHA_SAMBA_OCULTA,rw,iocharset=utf8,file_mode=0777,file_mode=0777" >> $LOG
      echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] Montado com exito $DESTINO_DE_REDE_DO_BACKUP em $PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE" >> $LOG
   else
      echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] mount  -t cifs $DESTINO_DE_REDE_DO_BACKUP $PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE -o user=root,pass=SENHA_SAMBA_OCULTA,rw,iocharset=utf8,file_mode=0777,file_mode=0777" >> $LOG
      echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] Apesar do Samba no $IP_LOCAL estar conectado e o $IP_RECEBE_COPIA_BACKUP estar on-line nao foi possivel montah-lo em $PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE." >> $LOG
      echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] Talvez o Samba do $IP_RECEBE_COPIA_BACKUP pode estar parado!" >> $LOG
      echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] Removendo pasta que iria receber o ponto de rede" >> $LOG
      rm -rf $PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE
      if [ $? -eq 0 ]
      then
         echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] rm -rf $PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE" >> $LOG
         echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] Pasta $PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE removida com sucesso!" >> $LOG
      else
         echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] rm -rf $PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE" >> $LOG
         echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] Pasta $PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE não removida do servidor $IP_LOCAL! Alguem deve fazer isso manualmente!"  >> $LOG
         echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] CERTIFIQUE-SE DE QUE A PASTA ESTAH VAZIA ANTES DE REMOVE-LA!!!!!!" >> $LOG
      fi
      echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] FINALIZADO SEM CONCLUIR TODAS AS TAREFAS" >> $LOG
      ASSUNTO="$ANO/$MES/$DIA, $DIA_SEMANA-feira - Back-up nao sera transferido pois nao foi possivel montar $DRIVE_DE_REDE_PARA_BACKUP em $PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE"
      MENSAGEM="Assunto: $ASSUNTO \nEMAIL_FROM: $EMAIL_FROM \nEMAIL_TO $EMAIL_TO"
      tr  X < $LOG | mail -s "$ASSUNTO" -cEMAIL1@dominio.NOME_DA_EMPRESA.br,EMAIL2@dominio.NOME_DA_EMPRESA.br EMAIL3@dominio.NOME_DA_EMPRESA.br
      exit 1014
   fi   
   
   if [ -e /root/log_copia.txt ];
   then
      rm -fR /root/log_copia.txt
   fi
   
   echo -e "++++++++++++++++++++++++++LOG de transferencia++++++++++++++++++++" >> $LOG
      
   LOG_copia=/root/log_copia.txt

   
   if [ -e $PASTA_NO_DRIVE_DE_REDE_PARA_RECEBER_BACKUP ]
   then
      chmod 777 $PASTA_NO_DRIVE_DE_REDE_PARA_RECEBER_BACKUP
      if [ $? -eq 0 ]   
      then
         echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] chmod 777 $PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE" >> $LOG
         echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] Permissão 777 atribuida com exito aa  pasta: $PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE" >> $LOG
      else
         echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] chmod 777 $PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE" >> $LOG
         echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] Pasta criada e montada, mas falha ao tentar alterar a permissão CHMOD." >> $LOG
      fi   
      echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] Pasta $PASTA_NO_DRIVE_DE_REDE_PARA_RECEBER_BACKUP existe, copiando o arquivo" >> $LOG
   else 
      mkdir $PASTA_NO_DRIVE_DE_REDE_PARA_RECEBER_BACKUP
      if [ -e $PASTA_NO_DRIVE_DE_REDE_PARA_RECEBER_BACKUP ]
      then
         echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] Pasta $PASTA_NO_DRIVE_DE_REDE_PARA_RECEBER_BACKUP existe, copiando o arquivo" >> $LOG
         chmod 777 $PASTA_NO_DRIVE_DE_REDE_PARA_RECEBER_BACKUP
         if [ $? -eq 0 ]   
         then
            echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] chmod 777 $PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE" >> $LOG
            echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] Permissão 777 atribuida com exito aa  pasta: $PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE" >> $LOG
         else
            echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] chmod 777 $PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE" >> $LOG
            echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] Pasta criada e montada, mas falha ao tentar alterar a permissão CHMOD." >> $LOG
         fi   
         
      else
         echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] FINALIZADO SEM CONCLUIR TODAS AS TAREFAS" >> $LOG      
         ASSUNTO="$ANO/$MES/$DIA, $DIA_SEMANA-feira - Sem a pasta $PASTA_NO_DRIVE_DE_REDE_PARA_RECEBER_BACKUP PORTANTO NAO FOI POSSIVEL transferir "$caminho_arquivo_final_7z" para  ELA"
         MENSAGEM="Assunto: $ASSUNTO \nEMAIL_FROM: $EMAIL_FROM \nEMAIL_TO $EMAIL_TO"
         tr  X < $LOG | mail -s "$ASSUNTO" -cEMAIL1@dominio.NOME_DA_EMPRESA.br,EMAIL2@dominio.NOME_DA_EMPRESA.br EMAIL3@dominio.NOME_DA_EMPRESA.br
         exit 1015
      fi
   fi
   cp -fR $caminho_arquivo_final_7z $PASTA_NO_DRIVE_DE_REDE_PARA_RECEBER_BACKUP #&> $LOG_copia
   if [ $? -eq 0 ]
   then
      echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] Comando cp -fR $caminho_arquivo_final_7z $PASTA_NO_DRIVE_DE_REDE_PARA_RECEBER_BACKUP executado com exito!" >> $LOG
      echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] Transferencia concluida com exito." >> $LOG
   else
      echo -e "ERRO NO COMANDO **CP** Nao foi possivel transferir "$caminho_arquivo_final_7z" para $DESTINO_DE_REDE_DO_BACKUP montado em $PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE. Pode ser um problema no samba em $IP_RECEBE_COPIA_BACKUP... ele está funcionando?" >> $LOG
      echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] FINALIZADO SEM CONCLUIR TODAS AS TAREFAS" >> $LOG      
      ASSUNTO="$ANO/$MES/$DIA, $DIA_SEMANA-feira - ERRO NO COMANDO CP Nao foi possivel transferir "$caminho_arquivo_final_7z" para $DESTINO_DE_REDE_DO_BACKUP montado em $PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE"
      MENSAGEM="Assunto: $ASSUNTO \nEMAIL_FROM: $EMAIL_FROM \nEMAIL_TO $EMAIL_TO"
      tr  X < $LOG | mail -s "$ASSUNTO" -cEMAIL1@dominio.NOME_DA_EMPRESA.br,EMAIL2@dominio.NOME_DA_EMPRESA.br EMAIL3@dominio.NOME_DA_EMPRESA.br
      exit 1016
   fi   
   umount $PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE &> $LOG_copia 
   if [ $? -eq 0 ]
   then
      echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] Comando umount $PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE executado com exito!" >> $LOG
      systemctl restart smb &> $LOG_copia
      if [ $? -eq 0 ]
      then
         echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] Reiniciando o samba exito!" >> $LOG
      else
         echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] Não foi possível reiniciar o SAMBA após ter desmontado a pasta $PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE!" >> $LOG
      fi
      rm -fR $PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE
      if [ $? -eq 0 ]
      then
         echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] Pasta $PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE removida com exito!" >> $LOG
      else
         echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] Pasta $PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE NÃO FOI removida com exito!" >> $LOG
      fi
   else
      echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] Nao foi possivel desmontar $DESTINO_DE_REDE_DO_BACKUP montado em $PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE" >> $LOG
      systemctl restart smb &> $LOG_copia
      echo -e "Desmontado via samba reiniciado." >> $LOG
      ASSUNTO="$DATA_INICIAL, no servidor $IP_LOCAL - Nao foi possivel desmontar $DESTINO_DE_REDE_DO_BACKUP montado em $PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE"
      MENSAGEM="Assunto: $ASSUNTO \nEMAIL_FROM: $EMAIL_FROM \nEMAIL_TO $EMAIL_TO"
      tr  X < $LOG | mail -s "$ASSUNTO" -cEMAIL1@dominio.NOME_DA_EMPRESA.br,EMAIL2@dominio.NOME_DA_EMPRESA.br EMAIL3@dominio.NOME_DA_EMPRESA.br
   fi   
else
   echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] O computador $IP_RECEBE_COPIA_BACKUP nao esta online, ou seja, nao responde ao Ping, por isso nao conseguimos copiar o arquivo para lah $" >> $LOG
   echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] O computador $IP_RECEBE_COPIA_BACKUP pode estar desligado, ou pode estar com problemas para se conectar a rede troque o cabo de placa de rede." >> $LOG
   echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] O hub/switch do computador IP $IP_RECEBE_COPIA_BACKUP pode estar desligado ou precisa ser reiniciado tal como o proóprio computador." >> $LOG
   echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] Voce precisarah transferir manualmente a cópia do back-up para o servidor$IP_RECEBE_COPIA_BACKUP." >> $LOG
   echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] FINALIZADO SEM CONCLUIR TODAS AS TAREFAS" >> $LOG      
   ASSUNTO="$ANO/$MES/$DIA, $DIA_SEMANA-feira - Nao foi possivel transferir "$caminho_arquivo_final_7z" para $DESTINO_DE_REDE_DO_BACKUP montado em $PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE"
   MENSAGEM="Assunto: $ASSUNTO \nEMAIL_FROM: $EMAIL_FROM \nEMAIL_TO $EMAIL_TO"
   tr  X < $LOG | mail -s "$ASSUNTO" -cEMAIL1@dominio.NOME_DA_EMPRESA.br,EMAIL2@dominio.NOME_DA_EMPRESA.br EMAIL3@dominio.NOME_DA_EMPRESA.br
fi

   tr -d '\015' < $LOG_copia > /root/log_copia.txt
   cat $LOG /root/log_copia.txt > $LOG_temp
   rm -fR /root/log_copia.txt
   rm -fr $LOG_copia
   echo -e "++++++++++++++++++++++FIM de LOG de transferencia +++++++++++++++++" >> $LOG_temp
   cat $LOG_temp > $LOG
   echo -e "[`date +%Y`/`date +%m`/`date +%d` - `date +%H`:`date +%M`:`date +%S`] PROCESSO CONCLUIDO SEM ERROS" >> $LOG
   ASSUNTO="Backup do $caminho_arquivo_original_fdb - $DATA_INICIAL, no servidor $IP_LOCAL (novo /root)"
   MENSAGEM="Assunto: $ASSUNTO \nEMAIL_FROM: $EMAIL_FROM \nEMAIL_TO $EMAIL_TO"
   rm -rf /root/log_temp.txt
   tr  X < $LOG | mail -s "$ASSUNTO" -cEMAIL1@dominio.NOME_DA_EMPRESA.br,EMAIL2@dominio.NOME_DA_EMPRESA.br EMAIL3@dominio.NOME_DA_EMPRESA.br
   exit 0


Scripts recomendados

Backup de MySQL para uso no cron / cPanel

rotate.sh - Rotaciona arquivos de acordo com a data

Backup Máquina do Tempo com Rsync

Backup de MySql para outro servidor FTP!

Backup com mysqldump


  

Comentários
[1] Comentário enviado por agofearth em 24/07/2018 - 12:47h

Olá Gente!
Depois que a gente termina sempre encontramos alguma coisa a corrigir.. Murphy... well

Creio que no arquivo não tenho corrigir, mas segue uma pequena correção

Está:

mount -t cifs $DRIVE_DE_REDE_PARA_BACKUP $PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE -o user=root,pass=OUTRO_SEGREDO,rw,iocharset=utf8,file_mode=0777,file_mode=0777

e deveria ser (repare o final):

mount -t cifs $DRIVE_DE_REDE_PARA_BACKUP $PASTA_PARA_MONTAGEM_DO_DRIVE_DE_REDE -o user=root,pass=OUTRO_SEGREDO,rw,iocharset=utf8,file_mode=0777,dir_mode=0777

Neste caso não muda praticamente nada já que estamos apenas interessado em um arquivo, mas se você for aproveitar este comando para "mountar" outras coisas e importante, pois a modificação acima, "dir_mode", está associada às permissões de pastas internas a da de onde você está montando.

Abraços!

[2] Comentário enviado por caionarezzi em 09/08/2018 - 22:26h

meu, esta de parabens pela a ideia, vou implementa alguns logs que eu vi e gostei da ideia parabens !


"Se tu o desejas, podes voar, só tens de confiar muito em ti." - Steve Jobs

[3] Comentário enviado por agofearth em 25/10/2018 - 16:50h

Saudações a todos!

Prezados, se vocês forem implementar códigos de retorno (return codes) no estilo "exit X", tal como fiz no script, não façam como fiz pois irá acontecer de retornarem números que não serão os que vocês especificaram.

Sempre usem números menores que 255 para evitar situações, de preferência maiores que "1" já que normalmente o zero é reservado para "execução sem erro". Por exemplo, ao invés de "exit 1006" como está no meu código-fonte usem "exit 106".

Desculpem-me pelo erro! Na época não sabia que este tipo de situação poderia ocorrer. Observem que podem acontecer problemas também com funções.

Para saber mais: https://www.shellscript.sh/tips/255/ - Acessado em 20181025.

Abraços!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts