Утилита удаленного копирования файлов (вроде rsync), но будет ли она учитывать уже скопированные данные (в этом сеансе)?

Утилита удаленного копирования файлов (вроде rsync), но будет ли она учитывать уже скопированные данные (в этом сеансе)?

Допустим, у меня есть каталог с 2 файлами, оба идентичны и довольно большие (например, 2 ГБ каждый). Я хочу rsync этого каталога на удаленный хост. Насколько я понимаю (и я могу ошибаться), rsync вычисляет контрольные суммы файлов. Конечно, если он видит 2 файла с одинаковой контрольной суммой, он может просто скопировать первый файл, а затем сделать локальное копирование на удаленном хосте для второго файла? Это было бы быстрее, не так ли?

Аналогично, разве rsync не хеширует все удаленные файлы перед копированием? Если он увидел другой файл с тем же хэшем, что и файл, который должен был быть передан, он мог бы сделать локальную копию на удаленном хосте.

Поддерживает ли rsync такие вещи? Есть ли способ включить это? Есть ли инструмент, похожий на rsync, который будет делать такие локальные копии на основе хэша?

решение1

Аналогично, разве rsync не хеширует все удаленные файлы перед копированием? Если он увидел другой файл с тем же хэшем, что и файл, который должен был быть передан, он мог бы сделать локальную копию на удаленном хосте.

нет, ноУнисонделает.

решение2

Я не верю, что сегодня есть какой-либо продукт, готовый сделать это как единый программный пакет. Есть оптимизаторы WAN, которые сделают это за вас, а затем вы все равно будете запускать RSYNC.

То, что вы ищете, это процесс дедупликации/редупликации. В идеале вы бы не хотели делать редупликацию, а дедупликацию локально, а затем выполнить RSYNC. Таким образом, вы только копируете ссылки, а не расширяете файлы на другой стороне.

решение3

Если оба файла действительно идентичны, то вам придется синхронизировать один из файлов с помощью rsync, а затем создать его локальную копию отдельно на удаленной стороне, вне процесса rsync.

Если у вас есть два одинаковых файла, rsync попытается скопировать их оба — самым важным идентификатором является имя файла, а не контрольная сумма. (Я только что проверил это на своем ноутбуке!)

Хотя было бы интересно обернуть rsync для выполнения некоторых из упомянутых вами вещей...

Их стоит прочитать:

http://en.wikipedia.org/wiki/Rsync

http://samba.anu.edu.au/rsync/tech_report/

решение4

Опция --fuzzyмощьделайте то, что вы ищете:

Из страницы руководства:

-y, --fuzzy
Эта опция сообщает rsync, что он должен искать файл-основу для любого отсутствующего файла назначения. Текущий алгоритм ищет в том же каталоге, что и файл назначения, либо файл с идентичным размером и временем изменения, либо файл с похожим именем. Если файл найден, rsync использует файл-основу нечеткой конфигурации, чтобы попытаться ускорить передачу.

Если этого не произойдет, то кто-то с соответствующими навыками программирования сможет довольно легко настроить опцию так, чтобы она вела себя так, как вы описываете, хотя это, вероятно, не то, чем вы хотели бы заниматься!

Связанный контент