ROBOCOPY команда, чтобы сделать инкрементное резервное копирование

29

Я поражен документацией ROBOCOPY. Я хочу сделать инкрементное резервное копирование моих локальных файлов на сетевой диск (M). Я хочу, чтобы он работал как можно быстрее, без файла журнала и с минимальным количеством текста на экране. Мои файлы находятся где-то в одной папке (MyFolder), которая имеет много вложенных подпапок. Под «инкрементным» я подразумеваю «только копировать то, что является новым или измененным». Я не хочу удалять какие-либо исторические файлы в месте назначения, но если я изменил файл, мне нужна только более новая версия. И если я не изменил файл, то я не хочу копировать его поверх существующего файла резервной копии. Правильно ли ниже? (Запуск Win7 Enterprise.)

robocopy C:\MyFolder M:\MyFolder /z /np /xo /e

Пожалуйста, никаких предложений ни о чем, кроме робокопии. Мне не разрешено ничего устанавливать. И меня не волнуют вопросы безопасности. У меня есть люди для этого (хочу я их или нет). ;-)

DMM
источник
1
Вам нужна опция / s или / e для копирования подкаталогов.
Дэвид Маршалл
@DavidMarshall: упс Я действительно знал это. Добавлен. Итак, я хорошо сейчас?
1951 года
Да. Я использовал что-то подобное.
Дэвид Маршалл
Тестирую это сейчас. На экране все еще есть куча материала. Как мне от этого избавиться, в будущих пробегах?
Дмм 19.09.14
2
Одним из вариантов, который может существенно повлиять на производительность, является многопоточная передача. /MT[:N] У меня 4-х ядерный процессор, поэтому я обычно использую что-то в ярости 8-16 для своего количества потоков. Я рисую 2-4 потока на ядро. Вы должны обязательно проверить с различными значениями на вашем оборудовании. Многопоточность помогает больше всего, когда у вас много маленьких файлов. Если у вас есть небольшое количество больших файлов, это не поможет почти так же.
Зоредаче

Ответы:

39

Уже несколько лет я успешно использую вариант следующего скрипта:

robocopy C:\source M:\destination /MIR /FFT /R:3 /W:10 /Z /NP /NDL

Объясненные параметры

  • /MIRВариант (эквивалент /E /PURGE) означает «зеркало» и является наиболее важным вариантом. Он рассматривает вашу исходную папку как «главную», заставляя ее перезаписывать любые изменения на целевой стороне, что является полезным параметром для резервного копирования.

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

  • /R:3указывает количество повторных попыток, если соединение должно прерваться, и /W:10указывает время ожидания 10 секунд между повторными попытками. Это полезные параметры при выполнении резервного копирования по сети.

  • /Z копирует файлы в «режиме перезапуска», поэтому частично скопированные файлы могут быть продолжены после прерывания.

  • /NPи /NDLподавить некоторые выходные данные отладки, вы можете дополнительно добавить /NS, /NC, /NFLчтобы дополнительно уменьшить объем выпуска (см документации для подробностей). Тем не менее, я бы предложил распечатать некоторые отладочные данные во время первых запусков, чтобы убедиться, что все работает как положено.

Дополнительные полезные параметры, упомянутые другими пользователями

  • /XJDисключает «точки соединения» для каталогов, символические ссылки, которые могут вызвать проблемы, такие как бесконечные циклы во время резервного копирования. См. Комментарии Брайана для деталей.

  • /MT[:N]использует многопоточность и может ускорить передачу множества небольших файлов. Для N значение, в 2-4 раза превышающее количество ядер, должно быть на обычной машине. Прокомментировал Zoredache на оригинальный вопрос.

Изменить в ответ на комментарий Грейнджер:

Если вы действительно хотите сохранить файлы, которые существуют в месте назначения, но не на стороне источника, просто замените /MIRпараметр на /E. Однако я настоятельно рекомендую использовать, /MIRкогда вы хотите использовать место назначения для инкрементных резервных копий. В противном случае любые файлы, которые были переименованы или перемещены в источнике, будут загромождать место назначения, что означает, что вы получите дубликаты. Я обычно создаю подпапку «backup» в месте назначения, которая содержит 1: 1 копию моего дерева исходных папок. Таким образом, вы все равно можете хранить исторические файлы рядом с папкой резервных копий и впоследствии безопасно их удалять или реорганизовывать.

pederpansen
источник
Эта команда позволяет копировать файлы с разрешениями? robocopy C: \ source M: \ destination / MIR / FFT / R: 3 / W: 10 / Z / NP / NDL
Shabeer Sher
4
За исключением / MIR (/ PURGE) удалит файлы в месте назначения, которые больше не существуют в источнике. На заданный вопрос прямо указано, что он не был в розыске.
Грейнджер
@ Shabeer Нет, Robocopy по умолчанию копирует только данные (D), атрибуты (A) и метки времени (T). Другие значения должны быть указаны с помощью параметра "/ copy: <value>", например "/ copy: DATS", для включения разрешений ACL. Но поскольку я копирую данные на NAS на базе Linux, для меня это не имеет особого смысла.
pederpansen
1
@ Брайан Спасибо за подсказку. У меня никогда не было проблем с точками соединения, но я полагаю, что на всякий случай избежать их не помешает. Добавил это в мой ответ.
pederpansen
1
@pederpansen: это происходит при копировании пользовательских папок (или копировании всего диска). Обычно виновником является папка данных приложения, так как она имеет точку соединения из соображений совместимости приложения. Попробуйте запустить «cd C: \ Users \ [USERFOLDER] \ AppData \ Local \ Application Data \ application data \ application data \» из командной строки, если вы хотите увидеть пример бесконечного пути. Это работает даже на Windows 10.
Брайан
8

Мне нравится использовать следующее:

robocopy "C:\Users\<user>" "F:\robocopy\<user>" /XJD /R:0 /XA:SH /E /ZB /XO /XD "Downloads" "AppData" /LOG:robocopy.log /TEE

Я запускаю это как администратор, чтобы в режиме резервного копирования ( /bопция) можно было копировать используемые файлы.

Другие параметры, не связанные с добавочным характером резервного копирования:

/XD исключить каталоги из резервной копии.

/XJD исключить точки соединения («Моя музыка»).

/R:0 установить повтор неудачных попыток на 0.

/XA:SH пропустить скрытые и системные файлы.

Чтобы удалить как можно больше информации журнала, добавьте следующие параметры /NP /NS /NDL /NFL /NC.

Винс
источник