Я делаю небольшое изменение в очень большом файле изображения (разница всего в несколько пикселей), который занимает много времени для передачи по сети.
Есть ли способ rsync, чтобы определить разницу в файле и отправлять только небольшие различия по сети?
rsync
ведет себя так по умолчанию. Пока незначительное изменение является незначительным изменением файла, и файл уже существует по обеим сторонам ссылки в почти идентичных версиях, передаваемые данные должны быть намного меньше, чем общий размер файла. Из первого абзаца на странице руководства: «Он известен своим алгоритмом дельта-передачи, который уменьшает объем данных, передаваемых по сети, отправляя только различия между исходными файлами и существующими файлами в месте назначения».Ответы:
rsync
алгоритм дельта-переноса делает это по умолчанию. Цитирование rsync manpage :Если вы хотите отключить его, вам придется использовать опцию
-W
или--whole-file
.Если вы действительно знаете, как сильно изменился ваш файл, вы можете даже оптимизировать поведение дельта-передачи, настроив размер дельта-блока:
А если вам нужна дополнительная информация о самом алгоритме, вы можете найти его здесь: Алгоритм Rsync
источник