Como criar um backup local?

0

Eu tenho um servidor web linux (Ubuntu 12.04) e eu quero criar um cronjob para gerar um backup diferencial, localmente (na mesma máquina).

Isso é possível? Com diferencial, quero dizer que a primeira vez que copia tudo, mas nos tempos seguintes, apenas copia novos arquivos. Mas eu também quero ter muitos pontos no tempo, quero dizer, pelo menos, 3 ou 4 backups dos quais eu posso restaurar tudo.

Eu verifiquei esta página, mas existem muitas ferramentas diferentes, e eu acho que cada uma tem suas próprias dicas: link

Por exemplo, me disseram que o armazenamento de .tar.gz tem um limite de tamanho.

Se você tiver alguma sugestão simples, mesmo que não seja diferencial, é bem-vindo.

    
por ChocoDeveloper 30.12.2012 / 10:16

2 respostas

1

Supondo que haja um disco de backup em /media/mydisk e eu quero o backup /home/user , este pequeno script permitirá que você mantenha o backup de 10 históricos, mas mantendo apenas arquivos diferentes mais de uma vez.

Isso precisa que o disco de backup seja formatado com um sistema de arquivos POSIX, como Ext4, XFS ou outro, mas não ntfs, nem fat!

#!/bin/bash
backRepo=/media/mydisk
backSrce=/home/user
backDest=home
backCopy=copy
backCount=9

[ -d "$backRepo/$backDest" ] || mkdir "$backRepo/$backDest"

cd $backSrce || exit 1
rsync -ax --delete --exclude '*~' --exclude '.DStore' . "$backRepo/$backDest/."

cd $backRepo
[ -d "$backCopy.$backCount" ] && rm -fR "$backCopy.$backCount"
for ((i=$backCount;i--;));do
    [ -d "$backCopy.$i" ] && mv "$backCopy.$i" "$backCopy.$((i+1))"
  done
((i++))

cp -al $backDest $backCopy.$i

Isso ( cp -al ) cria hardlinks de arquivos em vez de copiá-los. Então não há mais espaço usado.

O Rsync irá recriar (copiar na gravação) cada arquivo modificado, então o backup rotacionado manterá a versão antiga.

    
por 30.12.2012 / 19:13
1

rsync é uma ótima ferramenta para copiar arquivos, ele pode copiar somente os bits de mudança em um arquivo e pode fazer backup dos arquivos de destino antes de sobrescrever.

Você pode editar facilmente seu crontab para executar rsync periodicamente para seu backup principal. Então você pode copiar os backups para os arquivos alterados e você terá mais pontos de tempo. Ou copie os dados de backup antes de executar rsync para ter imagem completa para cada ponto de tempo.

A menos que você copie posteriormente os arquivos em outro lugar, não acho que seja necessário usar tar .

    
por 30.12.2012 / 10:46