Copiando apenas diferenças?

1

Eu quero recursivamente copiar um diretório em vez de outro, no entanto, só quero copiar as diferenças. A razão é que estou fazendo isso no Solaris em um volume que é instantâneo, ou seja, se eu estiver copiando 100gig para um diretório que já contenha 100gig, mas apenas 5gig for diferente, não quero que o 100gig inteiro seja copiado como isso vai encher o disco com 200gig de dados (100gig de novos dados e 100g de dados antigos mantidos pelo instantâneo).

Eu quero que o resultado final tenha apenas 105gig de espaço (ou seja, 5 gig de novos dados e 100 gig de dados antigos).

Remover o instantâneo não é uma opção, pois precisamos de uma opção de retrocesso rápido.

Seria excelente copiar apenas as diferenças com base em blocos, mas até mesmo copiar arquivos inteiros somente se eles fossem diferentes seria ok.

O -u de cp não funciona, pois os arquivos no destino podem ter novos carimbos de data / hora.

Além disso, devo observar que os diretórios de origem e de destino estão em volumes diferentes.

Como posso fazer isso?

    
por Clinton 18.12.2012 / 02:08

2 respostas

5

O Rsync é sua ferramenta:

rsync --archive source/ dest/

O arquivamento é apenas uma opção composta que consiste em:

--recursive      # recurse into directories
--links          # copy symlinks as symlinks
--perms          # preserve permissions
--times          # preserve times
--group          # preserve group
--owner          # preserve owner
--devices        # preserve device files
--specials       # preserve special files

Se você não tiver o rsync em seu sistema, deverá obtê-lo. Você provavelmente poderia criar outra solução usando outras ferramentas, mas se você estiver procurando por um programa que faça isso bem (a menos que eu entenda mal sua pergunta), o que você está procurando é o rsync.

    
por 18.12.2012 / 07:02
0

Se você quiser uma cópia em nível de bloco, poderá criar uma nova captura instantânea e enviar um fluxo incremental. Isso pressupõe que você está usando o ZFS e não os instantâneos do UFS e que o diretório (próximo o suficiente) corresponde ao sistema de arquivos no qual ele está.

    
por 18.12.2012 / 02:20

Tags