Backup usando o tar com o gzip

Publicado por Pedro Fernandes (última atualização em 20/02/2020)

[ Hits: 3.116 ]

Homepage: https://github.com/PedroF37

Download bkup.sh




Backup usando o tar com o gzip. Os arquivos e diretórios são especificados em arquivo de configuração e envia para local especificado em variável DESTINO ou para $HOME/$ARQUIVO se variável DESTINO estiver vazia.

Tem que entrar no script e especificar o arquivo com a lista para o backup na variável CONFIG_FILE.

  



Esconder código-fonte

#!/bin/bash
#
#
# bkup.sh      Arquiva usando o tar com o gzip os arquivos e diretorios
#               especificados em arquivo de configuração, e envia
#               para local especificado em variável DESTINO ou
#               para $HOME/$ARQUIVO se variável DESTINO
#               estiver vazia.
#
#
# USO           ./bkup.sh
#               ARQUIVO=bkp123.tar.gz ./bkup.sh
#               DESTINO=/home/pedro/teste1 ./bkup.sh
#               ARQUIVO=bkp123.tar.gz DESTINO=/home/pedro/teste1 ./bkup.sh
#
#
# OBS           Tudo tem que ter caminho completo, incluindo
#               arquivos e diretorios no arquivo especificado
#               na variavel CONFIG_FILE
#
# EX            /home/pedro/Downloads
#               /home/pedro/Documentos
#               Um por linha.
#
#
# SUGESTAO      Criar diretorio para armazenar os backups
#               e colocar CONFIG_FILE dentro do diretorio
#               Depois no script editar DESTINO para apontar
#               para o diretorio.
#
#
# autor         pedro fernandes
# email         pedrobfernandes32@protonmail.com
#
#
#########################################################################
#
#
# Pegando a data para anexar no nome do arquivamento
#
#
DATA=$(date +%d%m%y)
#
#
# Especifica nome do arquivamento
#
#
ARQUIVO=${ARQUIVO:-backup$DATA.tar.gz}
#
#
# Arquivo de configuração e destino do backup
#
#
# Especificar caminho completo: /home/user/arquivo
CONFIG_FILE=
DESTINO=${DESTINO:-$HOME}
#
#
#################### Inicio do script ###############################
#
#
# Verifica se arquido de configuração existe
#
#
if [ -z $CONFIG_FILE ]
then
   clear
   echo  "Arquivo de configuração não existe."
   echo  "Abortando o script."
   exit
fi
#
#
if [ -f $CONFIG_FILE -a -s $CONFIG_FILE ]        # Garante que $CONFIG_FILE existe
then                                             # e que não está vazio.
   :
else
   clear
   echo "$CONFIG_FILE não existe ou está vazio."
   echo "Abortando o script."
   exit
fi
#
# "Constroi" nomes de arquivos e diretorios para o backup
#
FILE_NO=1                 # Inicia na linha 1 do $CONFIG_FILE
exec < $CONFIG_FILE       # redireciona o stdin para $CONFIG_FILE
#
#
read FILE_NAME            # Lendo o primeiro registro
#
#
while [ $? -eq 0 ]        # cria a lista para o backup
do
     # Primeiro garante que arquivo ou diretorio existe
   if [ -f $FILE_NAME -o -d $FILE_NAME ]
   then
      FILE_LIST="$FILE_LIST $FILE_NAME"
   else
      cat <<- EOF
   $FILE_NAME não existe, logo não será incluido.
   Está listado na linha $FILE_NO de $CONFIG_FILE.
   Continuando a construção da lista para o arquivamento...
   EOF
   fi
#
#
   FILE_NO=$[ $FILE_NO + 1 ]
   read FILE_NAME
done
#
#
#################################################################
#
#
# Faz o arquivamento e comprime com gzip
#
#
echo
echo "Iniciando o arquivamento......"
#
#
tar -czf $DESTINO/$ARQUIVO $FILE_LIST 2> /dev/null
#
#
echo
echo "Arquivamento terminado"
echo "Arquivo resultante é: $DESTINO/$ARQUIVO"
#
#
exit

Scripts recomendados

clonagem de disco

Backup de arquivos com rsync

Backup dinâmico de banco de dados MySQL

Ferramenta de backup do HD para dispositivos externos

Backup de diretórios do sistema Linux


  

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