Kit de scripts para backup (Full + Diferencial + Samba + Rede)

Esse kit de scripts foi desenvolvido para realizar backup full e diferencial, via rede. Está operacional e em constante modificação. Ajuste conforme a sua necessidade. Para criar um servidor Samba, utilize os ótimos artigos encontrados no VOL.

[ Hits: 51.525 ]

Por: Perfil removido em 12/11/2011


Backup Diferencial



O script "backup_diferencial.sh" segue a estrutura:

1 - Chama e roda o script para montar as unidades "montar_unidades.sh";

2 - Realiza o backup com base no último full;

3 - Chama e roda o script de compactação, apos desmonta as unidades, através do script de "desmontar_unid.sh";

4 - Cria os logs.


#!/bin/bash
# Maicon Souza 
# data: 22-09-11

echo "Programa de Backup Diferencial"

IFS=: # separadores

lendoidbackup(){
# Importante::::: se houver mais de uma ID, altere os trechos "${nomebackup[0]}", para "${nomebackup[$cont]}" 

# nome do backup
nomebackup=(" ")
cont=0
while read linha; do
nomebackup[$cont]=$linha
let cont++
done < ./config/id_backup.txt
}

cbackup(){
# chama e roda o script de compactacao de backup
chmod +x ./compactar_backup.sh
./compactar_backup.sh
}

montaunids(){
# chama e roda o script para montar as unidades
chmod +x ./montar_unidades.sh
./montar_unidades.sh
}

echo " "

recebeinfbackup(){
# origem dos dados
receborig=(" ")
cont=0
while read linha; do
receborig[$cont]=/media/bkporig-${nomebackup[0]}-$cont
let cont++
done < ./config/lista_orig_backup.log
}

dadosdif() {
# diretorio de destino do backup
DSTDIR=/media/bkpdest/${nomebackup[0]}

DATA=`date +%x-%k%M%S`
# +xx busca arquivos criados existentes a xx minutos (arquivos que tenham mais de xx minutos)
# -xx arquivos que tenham sido criados nos ultimos xx minutos
TIME_FIND=-400 
# horas = 400 minutos
TIME_DEL=+7 # dias em que permanecera o backup diferencial armazenado
# data de inicio backup
DATAIN=`date +%c`
echo " Data de inicio: $DATAIN"

# criar o arquivo dif-data.tar no diretorio de destino
ARQ=(" ")
cont2=0
while read linha; do
ARQ[$cont2]=$DSTDIR/dif-$cont2-$DATA.tar
let cont2++ 
done < ./config/lista_orig_backup.log
}

backupdif(){
cont3=0
while read linha; do
sync
find ${receborig[$cont3]} -type f -cmin $TIME_FIND -exec tar -rvf ${ARQ[$cont3]} {} ";"
let cont3++
done < ./config/lista_orig_backup.log

if [ $? -eq 0 ] ; then
echo "--------------------------------------"
echo "Backup Diferencial concluido com sucesso"
DATAFIN=`date +%c`
echo "Data de termino: $DATAFIN"
echo "Backup realizado com sucesso" >> ./log/backup_diferencial.log
echo "Criado pelo usuario: $USER" >> ./log/backup_diferencial.log
echo "INICIO: $DATAIN" >> ./log/backup_diferencial.log
echo "FIM: $DATAFIN" >> ./log/backup_diferencial.log
echo "------------------------------------------------" >> ./log/backup_diferencial.log
echo " "
echo "Log gerado em ./log/backup_diferencial.log"
else
echo "ERRO! Backup Diferencial $DATAIN" >> ./log/backup_diferencial.log
fi 
}

procuraedestroidif(){
#apagando arquivos mais antigos (a 7 dias que existe (-cmin +2)
find $DSTDIR -name "dif*" -ctime $TIME_DEL -exec rm -f {} ";"
if [ $? -eq 0 ] ; then
echo "Arquivo de backup mais antigo eliminado com sucesso!"
else
echo "Erro durante a busca e destruicao do backup antigo!"
fi
}

####################

echo " "

clear

echo " "
echo "<----------------------->"
echo "| BACKUP DIFERENCIAL |"
echo "<----------------------->"
echo " "
echo " "
echo " "
echo " "
echo "<--------------------------------------------------------------------------->"
echo "| Sera realizado o backup diferencial, usando como base o ultimo backup ! |"
echo "<--------------------------------------------------------------------------->"

lendoidbackup
montaunids 
recebeinfbackup
dadosdif
backupdif
cbackup
procuraedestroidif

exit 0

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Backup Full
   3. Backup Diferencial
   4. Montar Unidades
   5. Desmontar Unidades
   6. Compactação
   7. Restore
   8. Regras
   9. Referências e Conclusão
Outros artigos deste autor

Instalando Apache2, PHP4 e MySQL

Aceleração 3D Nvidia no Debian Etch

Como instalar o LAMP no openSUSE Leap e Tumbleweed

Desvendando o Abiword

Configurando o D-Link DSL-210 no Debian Etch

Leitura recomendada

Processamento Paralelo em Shell Script - Conversão de Arquivos WAV para MP3

Redundância de link de internet

Script GitPratico para criar repositórios remotos sem logar no GitHub

Aprendendo a melhorar os seus scripts

cal2svg - brincando com shell script e arquivos vetoriais SVG

  
Comentários
[1] Comentário enviado por removido em 12/11/2011 - 16:20h

Muito bom maicon !

[2] Comentário enviado por teccert em 12/11/2011 - 17:26h

Normalmente se cobra muito para ensinar tarefas como esta, mas ainda bem que o Linux serve para todos, inclusive para os mais pobres e menos experiente, pois os mais iluminados não guardam nem negociam o conhecimento que adquiriu, pelo contrário, transmite-o gratuitamente e de forma simples, porém completa.

Contudo também é válido cobrar, ou pedir colaboração financeira dos que podem pagar ou contribuir.

Viva a Comunidade Linux!
Viva ao Maicon Souza por este belo tutorial!

[3] Comentário enviado por removido em 12/11/2011 - 18:56h

Obrigado !
Em um 1º momento, o kit pode parecer complicado ou até mesmo inoperante.
Mas alterando alguns parâmetros, certamente será de grande utilidade a todos.
---------------------------------------------------------------------------------->
No texto, ficou confuso o trecho: "Informar o destino (informe apenas um destino)".
Então entenda:
"** Ao informar o destino, informe apenas um endereço, ex:
//192.168.2.3/f$/Meu_backup"
---------------------------------------------------------------------------------->
Quem quiser algum esclarecimento ou o kit compactado, meu e-mail é:
staley.kirk@gmail.com

[4] Comentário enviado por removido em 15/11/2011 - 19:09h

Estou otimizando este kit, quando possivel postarei o resultado !

[5] Comentário enviado por xirux em 13/12/2011 - 09:34h

Impressionante o que o GNU/Linux faz com a cabeça da gente...o Maicon compartilhou conhecimento extremamente técnico e funcional, assim como centenas de pessoas aqui no VOL, de maneira que uma Micosoft nunca pensou que seria possível. Isso se chama humanização da informática, quem ganha é a nação. Eu troquei até de profissão (enfermagem - informática) seguindo o GNU/Linux. Só posso ficar cada vez mais orgulhoso de ter amigos como vcs. Fiquem na paz!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts