Дифференциальное копирование для Windows

Мне нужно ежедневно делать резервную копию набора больших файлов (> 3 ГБ каждый), которые каждый день различаются, может быть, на 20 МБ , в основном перезаписанные части.

Проблема заключается как во времени, необходимом для выполнения ежедневного резервного копирования, так и в использовании полосы пропускания:

Наш стационарный Интернет работает плохо и время от времени отключается , включается резервная копия LTE, но есть месячная квота , которая легко съедается одной или двумя резервными копиями, что сильно ограничивает нас в рабочее время, если стационарная линия снова отключается.

Мне нужно решение, которое можно запустить в CLI/пакетных файлах и сделать дифференциальное резервное копирование в Windows без использования cygwin. Если бы у меня не было ограничения Cygwin, rsync был бы главным кандидатом.

Вы также должны изучить Robocopy
Привет, Дэйв, Robocopy — это наше текущее решение, но оно не делает дифференциальных копий. Конечно, опция MIR скопирует все измененное и т. д., но если в файле размером 3 ГБ изменен 1 байт, он все равно скопирует все 3 ГБ.

Ответы (2)

Я использую xcopy (встроенная команда Windows) со следующими параметрами для достижения аналогичного результата:

xcopy /H /D /E /Y <source> <destination>

/H - Copy system and hidden files.
/D - Only copy files that are newer on the source than the destination.
/E - Copy all directories and subdirectories even if empty.
/Y - Suppress overwrite confirmations.

У него есть множество других вариантов, на которые стоит обратить внимание.

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

Спасибо за отзыв. Проблема в том, что все файлы, 9 из них, меняются каждый день, добавляя или редактируя небольшие фрагменты. Так что это около 30 ГБ данных каждый день, которые я хочу сократить. Меня бы очень заинтересовала CLI-версия rsync для Windows, для которой не требуется cygwin. Вы случайно не помните имя?
@kntouskos DeltaCopy — один из них, но я не уверен, есть ли у него интерфейс командной строки. Нашел это, просто выполнив поиск «windows rsync CLI» - acrosync.com

У меня была аналогичная проблема, но мне нужно было постепенно создавать резервные копии файлов размером 50 ГБ, поэтому я думаю, вы могли бы использовать это.

1. Создание моментального снимка для сохранения согласованности

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

У меня уже есть несколько простых инструкций здесь .

2. Резервное копирование

У меня есть три варианта для вас:

  • Unison : в основном инструмент синхронизации, но также и надежная альтернатива rsync для Windows (и других основных платформ). Он реализует протокол rsync внутри и не имеет зависимостей.
  • zpaq : автономный инкрементный архиватор, дедупликатор. Он создает небольшие различия, которые вы можете/должны перенести вручную. Эффективен и заканчивается за постоянное время.
  • Restic : современная альтернатива zpaq . Добавляет шифрование. Не так эффективно, как zpaq , но в два раза быстрее.
  • xdelta3 : инструмент для сравнения бинарных файлов. Очень эффективно, создает различия размером с фактически измененные данные. Обычно это занимает примерно столько же времени, сколько zpaq , но иногда его время работы увеличивается в 3-5 раз.