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.471 ]

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

Instalando o OpenOffice

Calculando máscara de sub-rede e broadcast

Introdução a Threads e como implementá-las em Python

Incrementando as funções do KDE com "servicemenus"

Servidor Openfire integrado ao Active Directory (Nível de Floresta 2008 R2)

Leitura recomendada

Aviso de queda de Internet via Sendxmpp

Redundância de link de internet

Backup automatizado com HD externo

Shell script com PHP

Executando backup do MySQL e enviando por FTP

  
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