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.150 ]

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

Fazendo backup durante a semana em pastas distintas, equivalentes ao dia da semana

Backup de MySql para outro servidor FTP!

Script de backup - rar

Backup, Recuperação e Chroot

Restauração de backup Firebird a partir de um arquivo .7Z contendo um GBK


  

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