Почему rsync не использует delta-transfer для локальных файлов?

у меня есть большой образ iso, который в настоящее время загружается торрент-клиентом с включенным резервированием места: это означает, что размер файла не меняется, а некоторые куски в (4 Mib) постоянно меняются из-за загрузки.

на 90% скачать я делаю первоначальный rsync, чтобы сэкономить время позже:

$ rsync -Ph DVD.iso /media/another-hdd/
sending incremental file list

DVD.iso
       2.60G 100%   40.23MB/s    0:01:01 (xfer#1, to-check=0/1)

sent 2.60G  bytes  received 73 bytes  34.59M bytes/sec
total size is 2.60G   speedup is 1.00

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

total size is 2.60G   speedup is 1.00

Speedup=1 говорит, что дельта-передача не была использована, хотя 90% файла имеет не изменено, целевой каталог находится на другом FS и копирование занимает несколько минут. Почему он не пытается ускорить передачу?! Как я могу заставить rsync использовать delta-transfer?

22
задан kolypto
13.04.2023 10:17 Количество просмотров материала 2699
Распечатать страницу

3 ответа

по словам manpage, psusi правильно:

- W, -- whole-file: Передача может быть быстрее, если эта опция используется, когда пропускная способность между исходным и конечным компьютерами выше, чем пропускная способность к диску (особенно, когда "диск" является фактически сетевой файловой системой). Это-значение по умолчанию, когда и источник и назначение заданы как локальные пути, но только если никакая опция пакетной записи не находится в эффект.

19
отвечен liganic 2023-04-14 18:05

прямой ответ на этот вопрос:

использовать --no-W флаг на силу сжатия Delta, неважно, локальный или удаленный.

обновление: похоже, что есть больше к истории. The delta compression, Кажется, включен только между процессом приема и передачи rsync. При выводе файла в файловую систему, rsync все еще может записывать весь файл(ы), даже с Дельта-сжатием.

см. "" Исследование Вакан танка по здесь.

16
отвечен HRJ 2023-04-14 20:22

по умолчанию rsync сначала создает новую копию целевого файла, а затем заменяет ее по различным причинам безопасности. Это можно переопределить, указав --inplace вместе с --no-whole-file. Это говорит rsync сделать на месте редактирования целевого файла, принимая различные риски (обычно незначительные для этой ситуации), как описано в справочной странице.

2
отвечен kartik_subbarao 2023-04-14 22:39

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх