Backup usando o tar com o gzip
Publicado por Pedro Fernandes (última atualização em 20/02/2020)
[ Hits: 3.464 ]
Homepage: https://github.com/PedroF37
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.
#!/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
Script para gravação de BKPs em DVDs-RW
Script de backup de usuários do sistema
Fazendo backup durante a semana em pastas distintas, equivalentes ao dia da semana
rotate.sh - Rotaciona arquivos de acordo com a data
Nenhum comentário foi encontrado.
Como atualizar sua versão estável do Debian
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Quer auto-organizar janelas (tiling) no seu Linux? Veja como no Plasma 6 e no Gnome
Copiando caminho atual do terminal direto para o clipboard do teclado
Script de montagem de chroot automatica









