On a similar note, doesn't rsync hash all the remote files before copying? If it saw a different file with the same hash as a file that was to transfered, it could do a local copy on the remote host.
não, mas Uníssono faz.
Digamos que eu tenha um diretório com 2 arquivos, ambos são idênticos e muito grandes (por exemplo, 2GB ea.) Eu quero rsync esse diretório para um host remoto. Pelo que entendi (e posso estar errado), o rsync calcula as somas de verificação dos arquivos. Certamente, se ele vir 2 arquivos com a mesma soma de verificação, pode copiar apenas o primeiro arquivo e fazer uma cópia local no host remoto para o segundo arquivo? Isso tornaria mais rápido, não?
Em uma nota semelhante, o rsync não mistura todos os arquivos remotos antes de copiar? Se ele viu um arquivo diferente com o mesmo hash de um arquivo que foi transferido, ele poderia fazer uma cópia local no host remoto.
O rsync suporta esse tipo de coisa? Existe alguma maneira de ligá-lo? Existe uma ferramenta semelhante ao rsync que fará esse tipo de cópias locais baseadas em hash?
On a similar note, doesn't rsync hash all the remote files before copying? If it saw a different file with the same hash as a file that was to transfered, it could do a local copy on the remote host.
não, mas Uníssono faz.
Eu não acredito que haja algum produto pronto para isso hoje como um único pacote de software. Existem otimizadores de WAN que farão isso por você e ainda executam o RSYNC.
O que você está procurando é um processo de desduplicação / reduplicação. O ideal é que você não queira redupir, mas deduzir localmente e depois fazer o RSYNC. Dessa forma, você só copia links em vez de expandir os arquivos do outro lado.
Se os dois arquivos forem realmente idênticos, você deverá rsyncar um dos arquivos e, em seguida, criar uma cópia local separadamente no lado remoto, fora do processo de rsync.
Se você tiver dois arquivos idênticos, o rsync tentará copiá-los - o nome do arquivo, em vez da soma de verificação, é o identificador mais importante. (Eu acabei de testar isso no meu laptop!)
Seria interessante envolver o rsync para fazer algumas das coisas que você mencionou ...
Vale a pena ler:
git faria o que você descreve
A opção --fuzzy pode fazer o que você está procurando:
Da página do manual:
-y, --fuzzy
This option tells rsync that it should look for a basis file for any destination file that is missing. The current algorithm looks in the same directory as the destination file for either a file that has an identical size and modified-time, or a similarly-named file. If found, rsync uses the fuzzy basis file to try to speed up the transfer.
Se alguém com habilidades de programação relevantes não conseguir ajustar a opção de se comportar como você descreve com bastante facilidade - embora isso provavelmente não seja algo com o qual você gostaria de se envolver!
provavelmente não é o que você quer, mas o EMC avamar pode fazer isso ... ele cria uma lista de soma de verificação e compara com o local, e transfere apenas arquivos que ainda não estão no backup local (mesmo se o arquivo vier de outro computador ) ... faz desduplicação antes da cópia e é muito útil em máquinas similares
mas isto é apenas para cópias de segurança, não para cópias simples ... e o avamar não é barato:)
a alternativa de código aberto mais próxima do avamar que eu sei é o backuppc ... ele ainda usa o rsync e faz apenas a desduplicação em arquivos já transferidos
Tags rsync bandwidth linux file-transfer