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: 52.878 ]
Por: Perfil removido em 12/11/2011
#!/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
É o Linux somente para especialistas?
Instalando o Gentoo Linux através do live-cd do Ubuntu
FreeRADIUS - Conceitos Básicos - Parte II
Instalando o antivírus BitDefender no Linux
flock - Gerenciador de lockfiles
cal2svg - brincando com shell script e arquivos vetoriais SVG
Backup automatizado com HD externo
Script GitPratico para criar repositórios remotos sem logar no GitHub
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
[Resolvido] dlopen(): error loading libfuse.so.2 AppImages require FUSE to run.
Criação de diretórios e aplicação de restrições de acesso no Linux
Instalando partes faltantes do Plasma 6
Como ler fonte de um projeto? (3)
Instalar Dual Boot, Linux+Windows. (2)









