Tenho um servidor web linux (Ubuntu 12.04) e quero criar um cronjob para gerar um backup diferencial, localmente (na mesma máquina).
Isso é possível? Com diferencial quero dizer que na primeira vez ele copia tudo, mas nas vezes seguintes só copia arquivos novos. Mas também quero ter muitos momentos, quero dizer, pelo menos 3 ou 4 backups dos quais posso restaurar tudo.
Eu verifiquei esta página, mas há muitas ferramentas diferentes e acho que cada uma tem suas próprias dicas:https://help.ubuntu.com/community/BackupYourSystem#Types_of_Backup
Por exemplo, me disseram que o armazenamento de .tar.gz tem um limite de tamanho.
Se tiver alguma sugestão simples, mesmo que não seja diferencial, será bem vinda.
Responder1
Supondo que haja um disco de backup /media/mydisk
e eu queira backup /home/user
, este pequeno script permitirá que você mantenha backup de 10 históricos, mas mantendo apenas arquivos diferentes mais de uma vez.
Isso exige que o disco de backup seja formatado com um sistema de arquivos POSIX, como Ext4, XFS ou outro, masnãoNTFS,nemgordo!
#!/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
Este ( cp -al
) cria hardlinks de arquivos em vez de copiá-los. Portanto, não há mais espaço utilizado.
Rsync irárecriar(copiar na gravação) cada arquivo modificado, então o backup girado mantém a versão antiga.
Responder2
sincronizar novamenteé uma ótima ferramenta para copiar arquivos, ele pode copiar apenas os bits alterados em um arquivo e pode fazer backup dos arquivos de destino antes de sobrescrevê-los.
Você pode editar facilmente para crontab
ser executado rsync
periodicamente em seu backup principal. Então você pode copiar os backups dos arquivos alterados e terá mais pontos no tempo. Ou você pode copiar os dados de backup antes de executar rsync
para obter uma imagem completa para cada ponto no tempo.
A menos que você copie os arquivos posteriormente para outro lugar, não acho necessário usar o tar
.