4

Это просто вопрос "Мне любопытно". При локальной синхронизации (то есть с одного диска на другой на одном хосте), как rsync узнает, какие файлы не стоит передавать? Я предполагаю, что это не делает полное сравнение файла (так как это было бы слишком дорого). Делает ли он только простую проверку, например:

  • размер файла
  • время модификации

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

2 ответа2

2

Это популярное заблуждение - дельта-перенос с rsync . rsync был разработан для быстрого копирования, а не для дельта-копирования. А чтобы сделать дельта-копирование, нужно сделать контрольные суммы. Теперь rsync НЕ будет проверять, какие файлы передавать, но какие файлы можно пропустить. Обычно проверяют размер отправителя / mtime и сравнивают с получателем.

С rsync вас есть возможность делать контрольную сумму для каждого файла (я думаю, что это --checksum).Конечно это будет медленно ...

0

Rsync не делает «приращения», это скорее «дифференциал». он не передает изменения (которые предполагают наличие определенных знаний о предыдущем запуске), он передает различия (путем сравнения исходного файла с целевыми файлами)

  • сначала проверяет размер файла, даты создания / изменения, флаги ... если все идентично, пропустите файл.
  • если на цели нет файла с таким именем, просто скопируйте весь файл.
  • если на цели есть файл, он вычисляет контрольные суммы для каждых 2 КБ файла и передает отправителю.

Для получения дополнительной информации, пожалуйста, загляните на страницы Rsync Man.

https://linux.die.net/man/1/rsync

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