1

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

Я пытаюсь понять различия, используя rsync в OSX поверх SMB при монтировании сетевого хранилища и используя rsync в OSX через SSH для смонтированного хранилища NFS в Linux. Во время тестирования при rsyncing к подключенному хранилищу в Linux, он сразу обнаружил новые / удаленные файлы! При rsyncing через SMB создает полный список файлов и создает список каждой папки до того, как произойдет копирование.

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

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

Команды, которые мы обыгрывали:

Более smb rsync -uvaz - удалить / источник / место назначения rsync -aHEXAx -v - удалить --progress --stats --timeout = 999 / источник / место назначения

Более ssh/nfs rsync -nuvaz - удалить /source / root@nfsServer.domain.co.uk:

Есть идеи?

1 ответ1

1

rsync всегда должен составлять список файлов для синхронизации, но ключевым моментом здесь является "Over SSH" .

  • Когда вы указываете rsync на SSH-сервер, он может попросить сервер создать такой список, запустив на сервере еще одну копию rsync.

    Таким образом, и клиент, и сервер должны только читать / повторно сканировать свои локальные копии и обмениваться только коротким списком обновлений.

  • Между тем, когда вы указываете rsync непосредственно на смонтированный общий ресурс, он не может ничего запустить на сервере, ни через SMB, ни через NFS, ни что-либо еще. Он даже не может отличить подключенные сетевые ресурсы от подключенных локальных дисков - все, что он видит, - это файлы.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .