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: 53.100 ]

Por: Perfil removido em 12/11/2011


Backup Full



O script "full_backup.sh" segue a estrutura:

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

2 - Realiza o backup e desmonta as unidades através do script "desmontar_unid.sh";

3 - Cria os logs.

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

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
}

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

desmontaunid(){
# chama e roda, o script para desmontar as unidades 
chmod +x ./desmontar_unid.sh
./desmontar_unid.sh
}

deleta(){
cd ./config/
rm -rf lista_diretorios.txt
cd ..
}

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

# selecao de dados
dadoselec() {

echo " "
echo " "
echo " "
echo "<--------------------------------------------------------------------->"
echo "| BACKUP APENAS DOS DIRETORIOS PRE-SELECIONADOS ! |"
echo "<--------------------------------------------------------------------->"
echo " "

# 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

# data atual
DATA=`date +%x-%k%M%S`
TIME_BKCP=+15
# criar o arquivo full-data.tar no diretorio de destino
criartar=(" ")
cont2=0
while read linha; do
# destino
DSTDIR=/media/bkpdest/${nomebackup[0]}
criartar[$cont2]=$DSTDIR/full-$cont2-$DATA.tar.gz 
let cont2++ 
done < ./config/lista_orig_backup.log

# data de inicio backup
DATAIN=`date +%c`
echo "Data de inicio: $DATAIN"
}

backupfullselec(){
# compressao dos arquivos
contv=0
while read linha; do
sync
tar -czvf ${criartar[$contv]} ${receborig[$contv]}
let contv++
done < ./config/lista_orig_backup.log

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

else
echo "ERRO! Backup do dia $DATAIN" >> ./log/backup_full.log
fi 
}

procuraedestroifullselec(){
DSTDIR=/media/bkpdest/${nomebackup[$cont]}

# apagando arquivos mais antigos (com mais de 20 dias)
find $DSTDIR -name "f*" -ctime $TIME_BKCP -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
}

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

lendoidbackup
montaunids
dadoselec
backupfullselec
procuraedestroifullselec
desmontaunid 

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

Zenwalk - Uma distro e tanto

Outros recursos no OpenOffice: colunas, fundo e bordas

OSS & ALSA - A História

Fontes com filtros LCD no Arch Linux

Configurando o monitor no SuSE 10.1

Leitura recomendada

ShellBot - Crie Bots para Telegram em Shell Script

Brincando com pseudoterminais e redirecionamentos

getopts: criando scripts Bash com parâmetros e argumentos personalizáveis

O comando tput

Gerar músicas aleatórias com YAD (Modo Gráfico)

  
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