Поэтому, покопавшись в документации по робокопии, я нашел способ сделать это. Это не пуленепробиваемый, хотя (см. Предостережения).
Что это сделает
Компьютер A имеет каталог источника, а компьютер B - каталог назначения. Два компьютера не могут быть подключены друг к другу, но для передачи файлов необходимо использовать переносное устройство хранения. Этот метод позволит создавать резервную копию исходного каталога в целевом каталоге, не копируя все содержимое при каждом выполнении резервного копирования. Резервная копия будет точной копией источника (исключения приведены в разделе предостережения).
Для демонстрации используются следующие пути:
- C:\SOURCE (на компьютере A)
- D:\DESTINATION (на компьютере B)
- X:\TEMP (на переносном устройстве хранения, например на жестком диске USB)
Шаг 1: Создать структуру каталогов
Нам нужен способ, чтобы компьютер А мог определить, какое содержимое резервной копии, поэтому мы используем robocopy для создания структуры каталогов на переносном устройстве хранения. Это создаст идентичные папки и файлы, за исключением того, что размер будет 0.
robocopy /e /create D:\DESTINATION X:\TEMP
(note: make sure X:\TEMP is empty or non-existent before doing this.
RC won't create 0-size files if they already exist)
Шаг 2: Скопируйте новые файлы
Теперь подключите переносное хранилище к компьютеру A и используйте robocopy для копирования новых файлов. Обратите внимание, что robocopy обрабатывает файлы размером 0 как "измененные" файлы, если в источнике существуют файлы полного размера, поэтому мы исключаем их, чтобы избежать копирования избыточных файлов, которые не изменились.
robocopy /mir /xc C:\SOURCE X:\TEMP
(note: the documentation on Microsoft technet says the switch is /xct,
but the copy of RC on my Windows 7 machine says it's /xc)
Шаг 3: Обновите резервную копию
Теперь, когда мы скопировали новые файлы, мы можем подключить переносное хранилище обратно к компьютеру B и использовать robocopy для завершения работы. Обратите внимание, что мы снова используем ключ /XC, чтобы избежать перезаписи наших файлов резервных копий файлами нулевого размера.
robocopy /mir /xc X:\TEMP D:\DESTINATION
Предостережения
Этот метод основан на том факте, что robocopy создает файлы размером 0, которые в остальном идентичны исходным файлам. Они определены как "измененные", потому что имеют ту же метку времени, что и исходные файлы, но имеют разные размеры файлов. При нормальных обстоятельствах, когда файл изменяется, его дата последнего изменения будет обновлена, и robocopy определит их как "более новые". Если у вас есть файлы с измененным содержимым, но без метаданных, отметка времени останется прежней, и в результате вышеописанный метод НЕ будет создавать резервные копии этих файлов.
Кроме того, используемые переносные носители могут также влиять на файлы. Если вы используете систему FAT32, то такие вещи, как информация о безопасности NTFS и шифрование, не будут передаваться, поскольку они не поддерживаются в FAT32. Кроме того, файлы размером более 4 ГБ не удастся передать. Так что лучше всего использовать NTFS.