У меня есть две директории, будучи копией другой. В моем случае каждый каталог имеет собственный внешний жесткий диск, но то, что я хочу сделать, должно быть универсально применимо к двум каталогам, которые должны быть идентичными. Теперь я хотел бы синхронизировать эти два каталога. Я хотел бы иметь эти функции:

  1. В идеале это должна быть двусторонняя синхронизация, причем не один каталог является ведущим, а другой - ведомым. Это означает, что он должен иметь возможность сказать «возьмите этот подкаталог из A, но этот подкаталог из B». (Имеет ли это смысл?)
  2. Прежде чем я прикажу выполнить синхронизацию, я хотел бы посмотреть, какие изменения будут в любом каталоге.
  3. Допустим, у меня есть каталог A. Для целей резервного копирования я делаю копию в другом месте каталога в каталог B (например, на другой жесткий диск). Часто случается, что у меня есть грязная подпапка где-то, например, под названием "архив", куда я помещаю множество файлов. Резервное копирование этой подпапки в каталоге B, конечно, тоже грязное. В один счастливый день я очищаю файлы в этом "архиве" в A - часто помещая файлы в нужное место в дереве каталогов A (где-то еще, чем в подпапке "archive"). Позже я хотел бы синхронизировать все дерево каталогов A с его резервной копией, то есть B. Что произойдет с таким инструментом, как rsync это то, что подпапка "archive" в B будет удалена, и эти файлы будут скопированы из правильных мест из A в их правильные места в B. Разве не было бы разумно, если бы файлы, которые только что переместились в B из "архива" в их правильные места, как я делал вручную для A раньше? Чтобы увидеть эти шаги было бы здорово увидеть перед синхронизацией.

Я использую Linux Kubuntu, обе директории находятся на разделах ext4.

Вопрос Синхронизация двух каталогов на Linux-компьютере похож, но не совсем так.

Мое третье требование - мое самое важное / самое трудное для удовлетворения. Если бы вы нашли решение для этого, я был бы очень рад :-).

Пожалуйста, учтите, что мое дерево каталогов довольно большое - как по размеру (~ 4 ТБ), так и по количеству файлов (где-то от 100 миллионов до 1 миллиарда файлов). Так что, если бы я использовал что-то вроде git ... это может не сработать, я думаю.

2 ответа2

0

Я предлагаю использовать унисон. Unison предназначен для синхронизации структур папок в обоих направлениях, включая удаление файлов. Я не знаю, как заставить унисон показывать только то, что будет передано. Кроме того, он очень хорошо работает для вашего случая использования.

Редактировать: в соответствии с https://en.wikipedia.org/wiki/Comparison_of_file_synchronization_software можно распознавать переименования или перемещения.

0

Вы можете попробовать freefilesync для синхронизации двух каталогов. Он отслеживает структуру ваших каталогов в небольшом файле sync.ffs_db как в исходном, так и в целевом каталогах, и да, он может обнаруживать перемещенные и переименованные файлы и каталоги и перемещать их в исходных и целевых каталогах и сохранять пропускная способность полной повторной синхронизации.

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