В 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" "\\NAS\BACKUP\Documents" /MIR
Параметры “/MIR” означают, что нужно выполнить зеркальную копию, т.е. если я удалю фото в исходном каталоге, оно удалится и в моем бекапе.
Еще одной удобной функцией robocopy является возможность отложенного копирования, т.е. если папка источника или назначения не доступна, то копирование будет выполнено позднее. По-умолчанию, время ожидания 30 секунд, после которого будет еще 1000000 попуток скопировать файлы, в том случае, если мы хотим, например, выполнить повторное копирование через 15 секунд и повторить его только 5 раз, можно воспользоваться такой командой:
robocopy "E:\Documents" "\\NAS\BACKUP\Documents" /MIR /R:5 /W:15
Еще больше опция:
robocopy "E:\Documents" "\\NAS\BACKUP\Documents" /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" "\\NAS\BACKUP\Documents" /maxage:5 /minage:1
2. Переместить все файлы:
robocopy "E:\Documents" "\\NAS\BACKUP\Documents" /move /e
3. Скопировать файлы за исключением скрытых (/xa:h):
robocopy "E:\Documents" "\\NAS\BACKUP\Documents" /e /xa:h
или за исключением read-only (/ia:rs):
robocopy "E:\Documents" "\\NAS\BACKUP\Documents" /ia:rs
При копировании также можно менять атрибуты файлов, при помощи опции A+ (добавить атрибут) or A- (удалить атрибут). Скопировать все файлы и задать им атрибут read-only:
robocopy "E:\Documents" "\\NAS\BACKUP\Documents" /e /A+:r
4. Скопировать все файлы по шаблону (расширению), пустые папки не копировать:
robocopy "E:\Documents" "\\NAS\BACKUP\Documents" *.doc *.ppt /s
5. Скопировать все файлы размером от 1000 до 60000 байт:
robocopy "E:\Documents" "\\NAS\BACKUP\Documents" /e /max:60000 /min:1000
6. Исключить из копирования папку AppData (/XD AppData):
Robocopy "C:\Users\Administrator" "\\NAS\BACKUP\Administrator" /MIR /XA:SH /XD AppData /XJD
7. Создать 32 потока (/MT:32) копирования файлов:
Robocopy "C:\Users\Administrator" \\NAS\BACKUP\Administrator /MIR /XA:SH /XD AppData /XJD /R:5 /W:15 /MT:32
В примере мы используем опцию /MT[:n], где n – это число от 1 до 128, которое определяет количество потоков. По умолчанию, если параметр /MT не указан, используется 8 потоков.