Script Backup diferencial

105 views
Skip to first unread message

Cristiano Hugo

unread,
Aug 24, 2007, 12:25:09 PM8/24/07
to Maillist Pollon
Fala Professor Pollon!

Tens aí um exemplo de script para backup diferencial ou incremental? quero gerar um backup de /dados apenas dos arquivos que foram alterarados no dia... os que tenho achado por aí, inclusive um teu abaixo, são só full...

Aguardo,



 Script Backup (Desenvolvido por Vanderlie Pollon)

#! /bin/sh
####################################################################
# #
# Nome do Script: bkp.sh #
# Data ???: dd/mm/aa #
# Disciplina ?: SCO/ADS #
# Desenvolvido por ?: Vanderlei Pollon #
# Versao ??.: 1.0 #
####################################################################

# Finalidade deste script: #
# Este script gera um pacote TAR com o conteúdo do diretorio /home.#
# A ideia e utiliza-lo para backup (o nome ja diz isso). O pacote #
# gerado deve conter todos os arquivos do /home, exceto aqueles que#
# contenham a string "lixo" no seu nome e aqueles cujo nome finali-#
# ze por ".ant". O arquivo gerado deve ser compactado pelo gzip e o#
# seu nome deve seguir o modelo bkp_home_nameserver_dd- mm-aaaa.tgz #
# Onde: #
# nameserver= nome do servidor (sem o dominio) #
# dd-mm-aaaa= data da backup #
# #
# Este script, sempre que rodar, deve verificar se esta incluido na#
# agenda do sistema. Se este script nao estiver na agenda do sis- #
# tema deve se auto-instalar para rodar, todos os dias, as 22:00, #
# exceto aos domingos (pois aos domingos o nosso servidor esta des-#
# ligado). #
# Suponha que este script esta no diretorio /usr/bin #
# #
####################################################################
# #
# Seguindo esta filosofia, este script esta todo baseado en varia- #
# veis que estao definidas a seguir.
# #
####################################################################
# OBS -> lembre-se de que para executar este script e necessario que #
# ele esteja com a permissao "x". Utilize o comando chmod. #
# #
####################################################################

# Definicao das variaveis utilizadas neste script

DATA_DO_BACKUP=`date +%d-%m-%Y` #Data do backup.
NOME_DO_SERVIDOR=`hostname -a` #Nome da maquina, sem o dominio
NOMEFIXO="bkp_home" #A parte fixa do nome do pacote
DIRETORIO="/opt" #Onde o arquivo tar sera armazenado
TAR="/bin/tar" #O binario que iremos utilizar
OPCOES1="?exclude "*.ant"" #Exclui os arquivos com final ".ant"
OPCOES2="?exclude "*lixo*"" #Exclui os arquivos com a string "lixo"
OPCOES3="-zcvf" #Opcoes para a gerar e compactar
ARQ_CRON="/etc/cron.daily/bkp.sh" #Arquivo da agenda do sistema
NOME_SCRIPT="/usr/bin/bkp.sh" #Caminho absoluto do script de backup
USER="root" #Usuario que rodara o script na cron
AGENDA="00 22 * * 1-6? #Data/hora na cron para rodar o script
#(cinco campos separados por um espaco)
LINHA=$AGENDA" "$USER" "$NOME_SCRIPT #Linha que sera incluida na cron
###################################################################

# Vamos iniciar.
# Limpamos a tela.
clear

#Vamos para o diretorio onde o pacote gerado ficara
cd $DIRETORIO

echo "Iniciando a geracao do pacote tar ?."; sleep 1

$TAR $OPCOES1 $OPCOES2 $OPCOES3 "$NOMEFIXO"_"$NOME_DO_SERVIDOR"_"$DATA_DO_BACKUP".tgz /home

# Testa o codigo da saida (se o comando foi feliz)

if [ $DIRETORIO -ne 0 ]; then
echo "Alguma coisa saiu errada ?."
echo ""
echo "Contate o administrador do sistema.";sleep 1
exit 1
fi
echo "Ufa, terminei :)"
echo ""
echo " O arquivo gerado encontra-se no diretorio $DIRETORIO"
# Verifica se este script esta ativo na crontab do sistema
cat $ARQ_CRON |grep $NOME_SCRIPT |grep -v "#" >/dev/null
if [ $NOME_SCRIPT -ne 0 ]; then
echo "Este script nao esta ativo na agenda do sistema"
echo "Vou inclui-lo para voce ?"; sleep 1
echo "$LINHA">>$ARQ_CRON
fi
exit 0


--
Cristiano Hugo Luz

vand...@pollon.org

unread,
Sep 14, 2007, 1:10:39 PM9/14/07
to suport...@googlegroups.com
Buenas!

A opção que eu testei, e funciona, para o tar fazer backup incremental é
"-g".
Exemplo: tar -cvgf backup.tgz /ovo


Não sei se é bem isso que tu queres.
Outra opção seria a cópia através do rsync que é mais otimizado que o tar
(copia apenas os pedaços do arquivo que foram modificados).

Vanderlei

> Fala Professor Pollon!
>
> Tens aí um exemplo de script para backup diferencial ou incremental? quero
> gerar um backup de /dados apenas dos arquivos que foram alterarados no
> dia... os que tenho achado por aí, inclusive um teu abaixo, são só full...
>
> Aguardo,
>
>
>
> Script Backup (Desenvolvido por Vanderlie Pollon)
>
> #! /bin/sh
> ####################################################################
> # #
> # Nome do Script: bkp.sh #
> # Data ???: dd/mm/aa #
> # Disciplina ?: SCO/ADS #
> # Desenvolvido por ?: Vanderlei Pollon #
> # Versao ??.: 1.0 #
> ####################################################################
>
> # Finalidade deste script: #
> # Este script gera um pacote TAR com o conteúdo do diretorio /home.#
> # A ideia e utiliza-lo para backup (o nome ja diz isso). O pacote #
> # gerado deve conter todos os arquivos do /home, exceto aqueles que#
> # contenham a string "lixo" no seu nome e aqueles cujo nome finali-#
> # ze por ".ant". O arquivo gerado deve ser compactado pelo gzip e o#

> # seu nome deve seguir o modelo bkp_home_nameserver_dd-mm-aaaa.tgz #

Reply all
Reply to author
Forward
0 new messages