É Rsync - link-dest Salvando espaço

2

Estou tentando usar o rsync e "--link-dest=" para criar cópias incrementais de backups em um servidor (Debian Wheezy, LVM, RAID 1), com o objetivo de usar hard links para economizar espaço. / p>

Ao contrário do que pode ser o caso de uso "normal", quero fazer o backup todo dia de um cliente do Windows em uma pasta no servidor chamada "1" (essa parte funciona, embora não use rsync aqui para fazer o backup) e depois rsync off de "1" para criar 30 dias de alterações incrementais. Então, "1" muda com o backup de cada dia do cliente, mas as cópias dele continham versões de arquivos mais antigas, com validade de 30 dias.

De um post no link que descreve como usar o rsync para simular o que o Time Machine da Apple faz, tenho o seguinte código (a parte "15/16" do caminho de destino representa o dia / hora do backup):

    date='date "+%Y-%m-%dT%H:%M:%S"'
    $UserNameVar=client8

    rsync -aP --log-file=/home/User1/Desktop/rsync.log  --link-dest=/home/$UserNameVar/share/Backups/1/current /home/$UserNameVar/share/Backups/1 /home/$UserNameVar/share/Backups/15/16/back-$date

    rm -f /home/$UserNameVar/share/Backups/1/current
    ln -s back-$date /home/$UserNameVar/share/Backups/1/current

O código é executado, o backup ocorre, o link entre o último backup e "atual" é criado e os backups subseqüentes são muito rápidos, mas, da melhor maneira possível, os backups consomem o mesmo espaço que o original. / p>

A abordagem está errada ou algo em meu código está errado? Ou preciso de uma maneira diferente de calcular o espaço livre real?

Obrigado

    
por Senrabdet 16.06.2014 / 00:17

3 respostas

4

Existem algumas maneiras de detectar se --link-dest está funcionando como esperado.

Uma maneira seria usar o comando find para procurar arquivos com contagem de hardlinks maiores que 1. Algo como find . -type f -links +1 .

O comando du normalmente também filtrará apenas um único arquivo, mesmo que existam muitos links para ele.

Portanto, se você usar du para obter o uso de uma pasta acima dos dois backups, verá um diretório consumindo a maior parte do armazenamento.

Se você não estiver vendo nenhuma dessas indicações, seus arquivos não estão sendo vinculados. Isso pode acontecer porque o rsync não está detectando esses arquivos como idênticos. Por alguma razão, os arquivos ou algum atributo deles são diferentes.

BTW, sou muito fã de usar dirvish em vez de tentar criar seu próprio script. É basicamente uma ferramenta que executa o rsync no modo de vinculação de link.

    
por 16.06.2014 / 01:51
2

Você analisou o rdiff-backup ?

Ele cria backups rotativos mantidos por um determinado número de dias e usa o rsync como método de transporte. Ele basicamente faz tudo o que você está tentando rotear automaticamente sem esforço extra. Ele cria diffs para cada backup, portanto, se nada tiver sido alterado, nenhum espaço extra em disco será usado.

rdiff-backup backs up one directory to another, possibly over a network. The target directory ends up a copy of the source directory, but extra reverse diffs are stored in a special subdirectory of that target directory, so you can still recover files lost some time ago. The idea is to combine the best features of a mirror and an incremental backup. rdiff-backup also preserves subdirectories, hard links, dev files, permissions, uid/gid ownership, modification times, extended attributes, acls, and resource forks. Also, rdiff-backup can operate in a bandwidth efficient manner over a pipe, like rsync. Thus you can use rdiff-backup and ssh to securely back a hard drive up to a remote location, and only the differences will be transmitted. Finally, rdiff-backup is easy to use and settings have sensical defaults.

Eu o uso extensivamente para backups de servidores em combinação com o backupninja

    
por 16.06.2014 / 02:26
0

Tive boa sorte com o link - até consegui fazer backup de um hospedar com um driver de rede flakey onde tar estava falhando. Ele armazena alguns arquivos duplicados e não os compacta, mas é rápido.

Ele mantém um número arbitrário de backups e retomará bem um backup interrompido anterior.

É realmente apenas um invólucro em torno de rsync --link-dest com algum mv'ing.

    
por 27.12.2015 / 04:42

Tags