Backup e envio do arquivo + md5sum para o FTP da escolha do usuário

Publicado por Marcelo Gonçalves (última atualização em 19/01/2016)

[ Hits: 3.290 ]

Download rotina_de_backup.sh




O script auxilia o usuário no dia-a-dia para gerar backups de uma pasta e enviar direto para um FTP. Quando executado no terminal, o script faz perguntas para que o usuário gere uma compactação personalizada e no final da rotina, o mesmo cria um arquivo md5sum para posterior verificação de sua integridade.

  



Esconder código-fonte

#!/bin/bash
######################################################################################
#                                                                                    #
#                                                                                    #
# rotina_de_backup.sh                                                                #
#                                                                                    #        
#                                                                                    #
# - Faz backup de um arquivo ou de uma pasta com possibilidade                       #
#   de enviar para um ftp de escolha do usuário                                      #
#                                                                                    # 
#                                                                                    #
# - Os backups são de extensão .tar.bz2                                              #
#                                                                                    #
# Autor: Marcelo dos Santos Gonçalves <marcelo.dsgoncalves@gmail.com>                #
#                                                                                    #
#                                                                                    #
#                                                                                    #
# Versão 1: Faz backup em .tar.bz2 e envia para um ftp de escolha do usuário        #
#                                                                                    #
# Campinas, 14 janeiro 2016                                                          #
#                                                                                    #
#                                                                                    #
#                                                                                    #
#                                                                                    #
# Licença: GPL                                                                       #
#                                                                                    #
#                                                                                    #
######################################################################################


echo -n '\033[5;47;1;31m Rotina de Backups - Incializando o backup ........  \033[m'

echo

         echo -n "\033[5;47;1;31m Por favor escolha um nome para o backup: Ex.: Backup_Financeiro \033[m "
                        read NOME

                        echo -n "\033[5;47;1;31m Por favor informe o caminho da pasta onde você deseja salvar: Ex.: /home/ \033[m "
                        read TEMP

                        echo -n "\033[5;47;1;31m Por favor informe o caminho da pasta que você deseja fazer o backup: Ex.: /opt/financeiro/\033[m "
                        read DOC

# Data usada na nomenclatura do arquivo de backup

#DATA=`date +%d%m%Y`


# Barra vazia
echo -n '\033[5;47;1;31m[.................................................] 0% \033[m'

passo='\033[5;47;1;31m#####\033[m'

for i in 10 20 30 40 50 60 70 80 90 100; do

   sleep 1

   pos=$((i/2-5))               # Calcula a posição atual da barra 

   echo -n  '\033[G'            # Vai para o começo da linha

   echo  -n "\033[${pos}C"      # Vai para a posição atual da barra

   echo -n   "$passo"           # Preenche mais um passo
             
   echo  -n '\033[53G'          # Vai para a posição da porcentagem

   echo -n   "\033[5;47;1;31m$i % \033[m"              # Mostra a porcentagem
   

      case "$i" in

      10)
         
         # Processo para gerar o arquivo de backup
      
         BKP="$NOME"_`date +%d%m%Y`.tar.bz2
         tar -P -jcpf $TEMP/$BKP  $DOC

         ;;

         30)
         
         # Processo para gerar o arquivo de verificação         

         touch $TEMP/"$NOME"_`date +%d%m%Y`_hash.txt

         md5sum $TEMP/$BKP > "$NOME"_`date +%d%m%Y`_hash.txt
         ;;
      
      esac
done
echo


   echo -n "\033[5;47;1;31mVocê quer enviar o arquivo para um FTP? (sim | s ou nao | n)\033[m"
   read ENVIAR 

   case $ENVIAR in

      s|sim) 

   echo    "\033[5;47;1;31m Qual é o endereço do FTP? \033[m"          
   read HOST
   
   echo   "\033[5;47;1;31m Qual é o usuário do FTP? \033[m"
   read USER

   echo    "\033[5;47;1;31m Qual é a senha do FTP?  \033[m"
   read PASSWD
   

         touch "$TEMP"FTP_"$NOME"_`date +%d%m%Y`.log #Comando para criar um arquivo vazio para colocar informação de log
         filename="$NOME"_`date +%d%m%Y`.tar.bz2
         dirname="$TEMP"

   #Comandos para enviar FTP

         ftp -i -n "$HOST" <<END_SESSION 
         quote USER "$USER"
         quote PASS "$PASSWD"
         mkdir "$NOME"_`date +%d%m%Y`
         cd    "$NOME"_`date +%d%m%Y`   
         put "$dirname""$filename" "$filename"
         put "$NOME"_`date +%d%m%Y`_hash.txt    
         quit
         
END_SESSION
   
   #Comando para gerar o Log de envio

         echo " Envio de arquivo realizado com sucesso " > "$TEMP"FTP_"$NOME"_`date +%d%m%Y`.log
         exit 0
   ;;

      n|nao)

         echo    "\033[5;47;1;31m Qual é o endereço do FTP? \033[m"
         exit 0
   ;;

      *)
         echo    "\033[5;47;1;31m Opção inválida, mas seu backup foi feito com sucesso na pasta desejada! \033[m"
                      exit 1   
;;
esac

Scripts recomendados

MySQL - Script para backup automatizado

Criptografando arquivos para enviar pra sua nuvem

Enviando e-mail localmente após o backup para monitoramento

Backup utilizando rsync com envio do log e informativo via e-mail

Backup incremental com montagem automática e e-mail


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts