Назад | Перейти на главную страницу

rsync копирует целые файлы вместо разницы

У меня есть 2 удаленных папки, содержащие несколько файлов. Я использую rsync для синхронизации 2. Дело в том, что на первом сервере файлы строго просто ДОБАВЛЯЮТСЯ с новыми данными каждый день.

Когда я звоню rsync мне кажется, что копирует заново весь файл.

Правильно ли мой звонок ниже?

  rsync -rtvu src_fld/  user@myserver:/opt/dst_fldr/

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

rsync делает много вещей - в вашем случае, вероятно, он будет строить списки файлов с обеих сторон, сравнивать их, находить файлы для передачи, читать файлы с обеих сторон, вычисление скользящих контрольных сумм с обеих сторон, обмениваются информацией о контрольной сумме и передают разные блоки. Этот процесс займет время, особенно если у вас есть большие файлы (в масштабе гигабайта) или большое количество файлов (размером в сотни тысяч). Из-за значительных накладных расходов на вычисления и ввод-вывод для отправителя и получателя он не обязательно ускорит передачу, это просто может уменьшить объем данных, передаваемых по ссылке.

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