Eu estava pesquisando na net para encontrar uma maneira de fazer um backup completo da minha máquina Linux (não de um servidor) e restaurar tudo a qualquer momento.
Comecei com o guia com mais links em todos os tópicos,http://www.mikerubel.org/computers/rsync_snapshots/index.htmle pensei que esse tipo de backup fosse um backup incremental, depois de mais um dia de pesquisa descobri Qual é a diferença entre backup diferencial e incremental em termos de comando rsync?e outras discussões, mas não tenho certeza do que estou realmente fazendo.
Seguindo o guia e os posts resolvi tentar com uma única pasta (antes de fazer backup de todo o sistema) chamada source
rsync -av --delete /home/user/source /home/user/backup/backup0/
então adicionei e removi alguns arquivos e fiz o backup mais três vezes
rsync -avH --delete --link-dest=/home/user/backup/backup0 /home/user/source /home/user/backup/backup1
rsync -avH --delete --link-dest=/home/user/backup/backup1 /home/user/source /home/user/backup/backup2
rsync -avH --delete --link-dest=/home/user/backup/backup2 /home/user/source /home/user/backup/backup3
Achei que com esse tipo de backup teria algo como:
backup0-->backup1-->backup2-->backup3
Então se eu quisesse restaurar o conteúdo do "backup3" os #1 e #2 eram necessários, mas eu os apaguei e depois restaurei o backup3, e tudo voltou ao lugar. Então eu corri
user@user:/backup$ du -sh *
450M backup0
620K backup1
624K backup2
628K backup3
Parece um backup diferencial, não incremental, mas pensei que para ser diferencial teria que configurar para cada backup
--link-dest=/home/user/backup/backup0
Minha pergunta é: estou enganando alguma coisa? Existe uma maneira melhor de fazer backup de um sistema completo usando o rsync?
PS: o dispositivo de destino será uma unidade externa com o mesmo sistema de arquivos.
Responder1
Com hardlinks, é possível armazenar várias cópias de um arquivo e ele ocupa apenas o espaço em disco de uma cópia. O que você está vendo du
é o cuidado para não contar duas vezes o espaço ocupado por vários links físicos para o mesmo arquivo.
Se você fosse executar:
du -sh backup3
você descobriria que o backup3 ocupa cerca de 450 milhões. Se você executar:
du -sh backup2 backup3
você descobriria que o backup2 ocupa cerca de 450M, enquanto o backup3 ocupa muito pouco. Isso porque du
examinou primeiro o backup2 e contou seu espaço. Ao examinar o backup3, ele contou apenas o novo espaço em disco usado e não os hardlinks para arquivos que já haviam sido contados no backup2.
Cada backup é completo e tem tudo que você precisa para fazer uma restauração completa. Entretanto, como os arquivos têm links físicos, o espaço total em disco usado é muito menor.
Exemplo
Coloquei um arquivo de 1,2 MB no diretório src/
. Vamos criar dois backups:
$ rsync -a src backup1
$ rsync -a --link-dest=../backup1 src backup2
Vamos ver o quão grande é o backup2:
$ du -sh backup2
1.2M backup2
backup2 tem 1,2 megabytes. Agora vamos ver o tamanho do backup1 e do backup2:
$ du -sh backup1 backup2
1.2M backup1
8.0K backup2
Agora, o backup2 parece ter apenas 8k. Isso ocorre porque os links físicos não são contados duas vezes.
Responder2
Links físicos são a melhor maneira de economizar espaço em disco. Em vez de criar scripts com rsync, eu uso um wrapper que faz este trabalho:Backup de borboleta.
Este wrapper usa rsync puro e transforma o rsync em uma ferramenta real de backup/restauração (ele também possui modos de arquivamento/exportação).
Além disso, em suas opções, possui o --mode/-m
sinalizador que permite selecionar o modo de backup entreIncrementalouDiferencial.
O modo diferencial manterá o primeiro completo e então todos os backups seguintes serão conectados a ele, economizando muito espaço graças aos hard links.
Um exemplo:
$ bb backup --computer mypc --destination /backup --data User --type Unix
--mode Differential