В 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.
Нажимаем 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 потоков.