Como todos sabem, eu adoro o Leopard, e gosto muito do seu sistema de backup, é ridiculamente simples. Até mesmo sua implementação é simples, ele cria um diretório para cada hora, e a partir de um rsync de tudo vai fazendo cópias incrementais dos arquivos modificados (novos), e hardlinks de todos os outros. Então dentro de cada diretório ele tem uma cópia do sistema inteiro, mas gastando quase nada de disco, afinal são hardlinks.

Procurando pelo sistema perfeito de backup (não existe, eu sei), acabei escrevendo um script ridiculo que funciona de forma parecida com o Time Machine da apple, mas sem todos aqueles efeitos especiais e nem a integração com os softwares do sistema. Pra usar basta instalar o rsync na máquina que vai receber os backups e na máquina que será backupeada, o código é esse :
cd /mnt/backup && \
rsync -ptvr --delete user@maquina:/home/user/ last ; \
cd last && \
find | cpio -dplm ../new && \
cd - && \
mv last `date +%Y%m%d` && \
mv new last
O script deve rodar na máquina que vai receber o backup , o primeiro “cd” é no diretório onde o backup será realizado, depois o rsync transfere o diretório para “last”. O script entra em “last” e cria hardlinks para todos os arquivos, e cria seus diretórios pais no diretório “new”. Então o script volta para o diretório anterior renomeia o diretório “last” para um com a data de hoje para o nome, e finalmente move o diretório “new” para “last.
Parece confuso, mas é bem simples, ele baixa o backup para last faz o diff para new, move o last para
a data de hoje, e move o new para last. Isso faz com que o rsync baixe apenas os novos arquivos do backup e armazena uma cópia completa do sistema em cada diretório datado. Assim para recuperar um arquivo do dia X , basta entrar no diretório X. Como expliquei, as cópias não ocupam espaço pois são hardlinks, genial né ? Rsyn e cpio são ferramentas antigas, pq ninguém pensou nisso antes ?
Quando mostrei esse script para alguns conhecidos, me perguntaram se eu faria uma interface bonitinha como o do Time Machine, minha resposta é não. Pois cada linux é um linux, cada distro é uma distro, cada gerenciador de arquivos é um gerenciador de arquivos. No mundo livre, não temos padrões, e escrever código pra integrar todo mundo é impossível… No mac os x o padrão existe, todas as ferramentas apple estão integradas com o Time Machine, pois a Apple define os padrões, e que não segue não desenvolve pra OSX.
Aproveite o script
Share this content:
“… pq ninguém pensou nisso antes ?”
Procure por “Mike Rubel” e “Art Mulder”, você vai ver que essa idéia já tem uns dez anos, se não mais… Embora pouco conhecido, esse tipo de backup “rotativo” com hard-links já era usado em sistemas UNIX nos anos 90.