2

У меня есть два, почти полных, внешних жестких диска одинакового размера.

Я хочу перенести весь контент с одного диска на другой и наоборот.

Есть ли способ сделать это автоматически, без необходимости вручную и последовательно передавать файлы между двумя дисками, пока весь контент не будет переключен?

Т.е. есть ли программа или команда, которую я могу оставить работающей сам по себе, пока диск 1 не будет содержать весь контент диска 2, а диск 2 будет содержать весь контент диска 1?

У меня есть доступ как к Windows, так и к Linux, но не к посреднику для временного хранения данных одного диска.

2 ответа2

0

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

Первый запуск займет некоторое время, после этого нужно обрабатывать только изменения.

РЕДАКТИРОВАТЬ: я неправильно понял ваше первоначальное требование. На мой взгляд, это странное требование, если только по какой-то причине у вас нет файлов, которые вы хотите переносить на больший диск, и файлов, которые вы не хотите переносить на другой диск. Отсутствие промежуточного пространства также странно.

Если файлы на любом диске сжимаемы, то будет работать сжатый архив (zip, tar и т.д.) Одного диска в вашей системе, перемещать файлы между дисками и затем восстанавливать исходный архив на другой диск. Также можно сжать файл на обоих дисках с помощью gzip. Перемещайте файлы назад и вперед и распаковывайте.

Если вы хотите переместить файлы в A, переместить файлы в B, переместить файлы в A ... тогда rsync с одними правилами поиска может сделать то, что вам нужно. Небольшой сценарий оболочки вокруг него для переключения направлений на каждом проходе потребуется. Каталоги в обеих системах должны быть разными. Возможно, вам придется изменить / переименовать каталоги для перемещения.

0

Поскольку это дублирующий вопрос, этот небольшой сценарий bytebuster может помочь. Он просто перемещает файлы назад и вперед между дисками X: и Y: в Y:\fromX и X:\fromY до тех пор, пока у него не останется свободного места на текущем целевом диске, а затем переключает source/dest до тех пор, пока не будет каталогов, кроме Y:\fromX и X:\fromY.

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

Это действительно просто, и если вы предпочитаете Linux, вы можете легко переписать его, используя bash / rsync с rsync --remove-source-files --exclude=dir вместо robocopy /MOVE /XD dir .

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