Перейти к содержимому

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

27

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

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

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

113 111 просмотров
dmm спросил 11 лет назад
D 266

2 ответа

34

I have been successfully using a variant of the following script for a few years now:

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

Parameters explained

  • The /MIR option (equivalent to /E /PURGE) stands for "mirror" and is the most important option. It regards your source folder as the "master", causing it to overwrite any changes on the target side, which is a useful setting for a backup.

  • /FFT is a very important option, as it allows a 2-second difference when comparing timestamps of files, such that minor clock differences between your computer and your backup device don't matter. This will ensure that only modified files are copied over, even if file modification times are not exactly synchronized.

  • /R:3 specifies the number of retries, if the connection should fail, and /W:10 specifies a wait time of 10 seconds between retries. These are useful options when doing the backup over a network.

  • /Z copies files in "restart mode", so partially copied files can be continued after an interruption.

  • /NP and /NDL suppress some debug output, you can additionally add /NS, /NC, /NFL to further reduce the amount of output (see the documentation for details). However, I would suggest to print some debug output during the first runs, to make sure everything is working as expected.

Additional useful parameters mentioned by other users

  • /XJD excludes "junction points" for directories, symbolic links that might cause problems like infinite loops during backup. See Brian's comments for details.

  • /MT[:N] uses multithreading and can speed up transfers of many small files. For N, a value of 2-4 times the number of cores should do on a normal machine. Commented by Zoredache on the original question.

Edit in response to Granger's comment:

If you really want to keep files that exist on the destination, but not on the source side, simply replace the /MIR option with /E. However, I would strongly suggest to use /MIR when you want to use the destination for incremental backups. Otherwise any files that have been renamed or moved at the source will clutter up the destination, meaning you get duplicates. I usually create a subfolder "backup" on the destination which contains a 1:1 copy of my source folder tree. That way you can still keep around historical files next to the backup folder and remove or reorganize them safely later on.

Эта команда позволяет копировать файлы с разрешениями? robocopy C: \ source M: \ destination / MIR / FFT / R: 3 / W: 10 / Z / NP / NDL

Shabeer Sher · 11 лет назад · 0

За исключением / MIR (/ PURGE) удалит файлы в месте назначения, которые больше не существуют в источнике. Заданный вопрос прямо заявил, что ** не ** хотел.

Granger · 11 лет назад · 3
@ Shabeer Нет, Robocopy по умолчанию копирует только данные (D), атрибуты (A) и метки времени (T). Другие значения должны быть указаны с помощью "/ copy:"параметр, например" / copy: DATS "для включения разрешений ACL. Но так как я копирую в NAS на базе Linux, для меня это не имеет большого смысла.
pederpansen · 11 лет назад · 0

Ницца! Я тоже использовал робокопию. Но у меня есть несколько хороших идей, читая это. Может быть, хорошая идея реализовать что-то вроде этого: IF (TODAY DestFileLastDate> 30Days AND SourceFile не существует в пункте назначения) DO . Возможно, я скоро попробую.

ejbytes · 10 лет назад · 0

Предупреждение: если вы не добавите / XJ или / XJD, robocopy может попытаться создать бесконечно вложенный каталог, останавливаясь только при нехватке дискового пространства. Такой каталог можно удалить, вызвав robocopy / purge c: \ [emptydirectory] c: \ [поврежденный_каталог] (Windows Explorer не может удалить такие каталоги).

Brian · 10 лет назад · 0

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

pederpansen · 10 лет назад · 1

@pederpansen: это происходит при копировании пользовательских папок (или копировании всего диска). Обычно виновником является папка с данными приложения, так как она имеет точку соединения из соображений совместимости приложения. Попробуйте запустить "cd C: \ Users \ [USERFOLDER ] \ AppData \ Local \ Application Data \ application data \ application data " из командной строки, если вы хотите увидеть пример бесконечного пути. Это работает даже на Windows 10.

Brian · 10 лет назад · 1
pederpansen ответил 11 лет назад
P 488
7

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

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.

Vince ответил 11 лет назад
V 179