Резервное копирование в Windows Server 2008 R2 при помощи robocopy

В Windows Server 2008 R2 Microsoft значительно доработала и улучшила систему резервного копирования (как блочного, так и файлового). Появились следующие функции:

  • Улучшена поддержка резервного копирования на уровне файлов: теперь можно выбрать конкретные папки и файлы, которые нужно включить/исключить из бекапа.
  • Улучшена поддержка резервного копирования по сети : теперь появилась возможность выполнять резервное копирование на устройства NAS с запущенной службой доступа к файлам Samba (бекап на уровне файлов полностью не поддерживается). Также поддерживается инкрементальное копирование, но только в том случае, если на получателе работает служба VVS.

Однако в связи с наличием ряда ограничений во встроенной процедуре выполнения бэкапа в Windows Server 2008 R2 Microsoft, можно воспользоваться сторонними утилитами, специальными программами для резервного копирования , или утилитой robocopy .

Резервное копирование с помощью robocopy

Robocopy расшифровывается как “Robust File Copy”, это утилита командной строки для осуществления репликации каталогов, данная утилита во многом похожа на команду Unix – xcopy. Основное преимущество команды заключается в том, что она позволят выполнять копирование/перемещение только тех файлов, которые были изменены, что позволяет реализовать функцию инкрементального резервного копирования.

Синтаксис команды robocopy можно посмотреть, открыв командную строку и набрав:

robocopy /?

Например, мы хотим выполнить копирование всех новых фотографий на сетевой накопитель NAS. В нашем примере мы должны указать папку-источник, папку назначения и опции команды:

robocopy "E:Documents" "\NASBACKUPDocuments" /MIR

Параметры “/MIR” означают, что нужно выполнить зеркальную копию, т.е. если я удалю фото в исходном каталоге, оно удалится и в моем бекапе.

Еще одной удобной функцией robocopy является возможность отложенного копирования, т.е. если папка источника или назначения не доступна, то копирование будет выполнено позднее. По-умолчанию, время ожидания 30 секунд, после которого будет еще 1000000 попуток скопировать файлы, в том случае, если мы хотим, например, выполнить повторное копирование через 15 секунд и повторить его только 5 раз, можно воспользоваться такой командой:

robocopy "E:Documents" "\NASBACKUPDocuments" /MIR /R:5 /W:15 

Еще больше опция:

robocopy "E:Documents" "\NASBACKUPDocuments" /Z /MIR /R:5 /W:15 /V /TS /FP /NP /LOG+:"C:NASSync.log"

Приведенные параметры robocopy говорят о том, что необходимо делать подробный вывод результатов исполнения (/V), выводить метку времен (/TS), полный путь (/FP), не показывать шкалу прогресса (/NP), и выводить результаты в файл лога (/LOG+). Для NAS, которые не поддерживают файловую систему NTFS, необходимо указывать параметр /FFT.

Планирование резервного копирования

Для того, чтобы выполнять регулярное резервное копирование, можно воспользоваться планировщиком Windows — Task Scheduler . Запускаем планировщик, создаем новое задание Create Basic Task , в мастере указываем имя задания (например, backup) и нажимаем Next . На экране Trigger , указываем как часто нужно выполнять резервное копирование. На вкладке Action указываем, что мы хотим запустить программу, нажимаем Next. Далее указываем имя программы, можно просто набрать robocopy , или указать полный путь к программе C: Windows System32 robocopy. exe . В окне с параметрами ( Add arguments ( optional) ) мы должны указать аргументы команды robocopy.

Резервное копирование в Windows Server 2008 R2 при помощи robocopy

Нажимаем Next и Finish.

Для того, чтобы проверить правильность работы задания, перейдем в планировщик, найдем в нем наше задание, правой кнопкой щелкнем по нему и выберем Run . После того, как задание будет выполнено, его статус можно найти в Last Run Result.

Примеры использования robocopy

Рассмотрим различные сценарии и параметры использования robocopy.

1. Скопировать файлы, измененные за последние 5 дней (исключая сегодня).

robocopy "E:Documents" "\NASBACKUPDocuments" /maxage:5 /minage:1

2. Переместить все файлы:

robocopy "E:Documents" "\NASBACKUPDocuments" /move /e

3. Скопировать файлы за исключением скрытых (/xa:h):

robocopy "E:Documents" "\NASBACKUPDocuments" /e /xa:h

или за исключением read-only (/ia:rs):

robocopy "E:Documents" "\NASBACKUPDocuments" /ia:rs

При копировании также можно менять атрибуты файлов, при помощи опции A+ (добавить атрибут) or A- (удалить атрибут). Скопировать все файлы и задать им атрибут read-only:

robocopy "E:Documents" "\NASBACKUPDocuments" /e /A+:r

4. Скопировать все файлы по шаблону (расширению), пустые папки не копировать:

robocopy "E:Documents" "\NASBACKUPDocuments" *.doc *.ppt /s

5. Скопировать все файлы размером от 1000 до 60000 байт:

robocopy "E:Documents" "\NASBACKUPDocuments" /e /max:60000 /min:1000

6. Исключить из копирования папку AppData (/XD AppData):

Robocopy "C:UsersAdministrator" "\NASBACKUPAdministrator" /MIR /XA:SH /XD AppData /XJD

7. Создать 32 потока (/MT:32) копирования файлов:

Robocopy "C:UsersAdministrator" \NASBACKUPAdministrator /MIR /XA:SH /XD AppData /XJD /R:5 /W:15 /MT:32

В примере мы используем опцию /MT[:n], где n – это число от 1 до 128, которое определяет количество потоков. По умолчанию, если параметр /MT не указан, используется 8 потоков.

EnglishRussianUkrainian