Backup usando o tar com o gzip

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

[ Hits: 3.146 ]

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

PKG Sync v4.0 - utilitário para backup de pacotes DEB baixados

Backup de bases MySQL

Backup da pasta de usuário em sistemas GNU/Linux sem copiar os arquivos ocultos

Backup de Roteadores e Switches

Backup incremental com rsync


  

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