rsync arquivos de movimentação de backup diferenciais

1

root @ server1: / - servidor remoto

/ backup1 / 12 / fullbackup - servidor de backup local com dados do server1

primeiro rsync todos os dados do servidor remoto para o servidor de backup local (script1.sh):

rsync -avrh -e "ssh -p 123456 -o StrictHostKeyChecking=no" \
--progress \
root@server1:/ /backup1/12/fullbackup/

Segundo, eu crio um script de backup diferencial simples (script2.sh):

today=15   
rsync -avrh -e "ssh -p 123456 -o StrictHostKeyChecking=no" \
--progress \
--link-dest=/backup1/12/fullbackup/
root@$ip:/ /backup1/12/backupday/$today/

Após executar o primeiro script (script1.sh) no diretório 12:

# du -sh /backup1/12/*
8.0K    /backup1/12/backupday
4.1G    /backup1/12/fullbackup

Após executar o segundo script (script2.sh), todos os dados do fullbackup são movidos para o backupday / 15

# du -sh /backup1/12/*
3.9G    /backup1/12/backupday
386M    /backup1/12/fullbackup

Depois de mover hoje = 15 para hoje = 16 e executar o segundo script novamente (script2.sh) no backupday:

# du -sh /backup1/12/backupday/*
4.1G    /backup1/12/backupday/15
104M    /backup1/12/backupday/16

Eu não entendo por que primeiro executar o script2.sh move todos os dados para o backupday / 15 e o segundo, o terceiro e o próximo script de execução criam o backup diferencial correto.

O que precisa ser alterado para ter sempre uma cópia completa em / backup1 / 12 / fullbackup e diferente em backupday / $ today?

    
por MMa 16.10.2017 / 13:11

1 resposta

1

O que você está vendo é um artefato de du . Quando você faz hard-link de arquivos, du mantém uma nota do uso do disco que já foi contabilizado quando se depara com o segundo arquivo. Por exemplo

$ mkdir a b
$ dd count=1000 </dev/zero >a/x
$ ln a/x b/x
$ du -s a b
500     a
0       b
$ du -s  b a
500     b
0       a

Você vê como o primeiro diretório obtém todo o espaço aparentemente usado.

    
por 16.10.2017 / 13:39

Tags