У меня есть 2 удаленных папки, содержащие несколько файлов. Я использую rsync
для синхронизации 2. Дело в том, что на первом сервере файлы строго просто ДОБАВЛЯЮТСЯ с новыми данными каждый день.
Когда я звоню rsync
мне кажется, что копирует заново весь файл.
Правильно ли мой звонок ниже?
rsync -rtvu src_fld/ user@myserver:/opt/dst_fldr/
Насколько я понимаю, rsync
может вычислить разницу между двумя файлами, поэтому я ожидал очень быстрого обновления.
rsync делает много вещей - в вашем случае, вероятно, он будет строить списки файлов с обеих сторон, сравнивать их, находить файлы для передачи, читать файлы с обеих сторон, вычисление скользящих контрольных сумм с обеих сторон, обмениваются информацией о контрольной сумме и передают разные блоки. Этот процесс займет время, особенно если у вас есть большие файлы (в масштабе гигабайта) или большое количество файлов (размером в сотни тысяч). Из-за значительных накладных расходов на вычисления и ввод-вывод для отправителя и получателя он не обязательно ускорит передачу, это просто может уменьшить объем данных, передаваемых по ссылке.
Если в вашем случае единственными изменениями файлов являются добавления (как в случае с растущими журналами), рассмотрите возможность использования --append-verify
возможность rsync
который пропустил бы весь процесс вычисления скользящей контрольной суммы, требующий больших вычислительных ресурсов, и просто передал бы хвост большого файла для заполнения меньшего. Он также проверит после передачи, идентичны ли файлы на отправителе и получателе, запустив операцию подсчета контрольной суммы одного файла.