Сознательные пользователи ПК
наверняка умеют создавать образ жесткого диска Vista с помощью
средства «Архивация всего компьютера (Complete
PC Backup)» Центра архивации и восстановления (Backup and
Restore Center) и регулярно пользуются средством
архивации Windows (Windows Backup) для создания резервных
копий важных файлов.
Тем не менее, для пущей
безопасности никогда не помешает иметь в своем распоряжении
дополнительную резервную
копию данных. В принципе, получить ее можно простым
перетаскивание папки «Документы» (Documents) на съемный
жесткий диск, но делать это каждый раз вручную несколько
утомительно.
К счастью, в Microsoft Windows
Vista есть утилита Robocopy (Прим. ред. Утилита
входит в Windows Resource Kit), значительно облегчающая
создание дополнительной резервной копии данных. Как многим
наверняка известно, Robocopy входит в пакет служебных
приложений Windows Resource Kit еще со времен Windows NT 4.0,
но на этот раз разработчики Microsoft снабдили утилиту
дополнительными функциями, предназначенными специально для
Vista, и решили включить ее в состав операционной системы. То,
что воспользоваться ею теперь может каждый, — просто
замечательно, но есть здесь одно «но»: Robocopy — приложение с
интерфейсом командной строки, и для управления его
возможностями предусмотрено более восьмидесяти
переключателей.
А значит, для того, чтобы использовать
функции Robocopy в полной мере, придется потратить немало
времени на расшифровку всех этих переключателей и выбор
наиболее подходящих для поставленной задачи. Для прожженных
технических специалистов это, может, и не проблема, но обычных
пользователей, которым нужна всего лишь утилита для
дополнительного резервного копирования, такие сложности могут
отпугнуть.
Итак, изучим
переключатели командной строки Robocopy, и для примера представим простой маленький сценарий, который можно использовать
для создания точной копии всех файлов данных в папке профиля
пользователя (C:/Users/Имя_пользователя).
Возможности
Robocopy
Судя
по названию утилиты, можно предположить, что это просто
средство для копирования файлов (Robust File Copy — «надежное
копирование файлов»), но на самом деле, это куда более мощное
приложение со множеством замечательных функций, делающих его
великолепным инструментом для создания резервных копий данных.
Например, при повторном резервном копировании Robocopy
копирует только те файлы, которые были изменены со времени
создания последней резервной копии.
Если для
резервного копирования используется ненадежное сетевое
подключение, утилиту можно настроить таким образом, чтобы она
дожидалась восстановления связи или возобновляла передачу
файлов с того места, на котором остановилась. К тому же,
Robocopy позволяет сохранить все сопутствующие данные — штампы
даты и времени, списки контроля доступа системы безопасности
(Access control lists, ACL) и многое другое.
Переключатели
В
любой системе Windows Vista файл Robocopy.exe хранится в
каталоге /Windows/System32, поэтому его можно запустить прямо
из командной строки (Command Prompt). Чтобы создать текстовый
файл с инструкциями к утилите, который можно будет
просматривать в Блокноте (Notepad) (см. рис. A), надо
выполнить команду Robocopy /? >
RobocopySwitches.txt.
Рисунок A.
Создать текстовый файл документации к утилите намного легче,
чем пытаться разобраться в переключателях прямо в окне
командной строки.
Файл документации разбит на
пять разделов, включающих в себя определенные категории
переключателей. Этот удобно отформатированный документ, наряду
с моими примерами, можно использовать для создания своего
собственного сценария Robocopy. Разделы справочного файла
называются:
• Параметры копирования (Copy Options)
• Параметры выбора файлов (File Selection Options) •
Параметры повторных попыток (Retry Options) • Параметры
ведения журнала (Logging Options) • Параметры задания (Job
Options)Создание сценария командной строки
Для
примера создадим сценарий резервного копирования файлов
данных из папки своего профиля «C:/Users/Greg Shultz» в папку
«TheBackup» на съемном жестком диске с меткой тома «J» (в своем
сценарии, разумеется, надо заменить все имена и пути на свои
собственные). Наш сценарий будет начинаться так:
Robocopy “C:/Users/Greg Shultz” “J:/TheBackup” Создадим копии всех папок, даже пустых, потому что они могут
пригодиться для сохранения определенных типов данных в будущем.
Копировать файлы, удаленные с жесткого диска, не будем. Можно
было бы использовать для этого переключатели /S и /PURGE, но можно
достичь поставленных целей и с помощью одного-единственного
переключателя /MIR. Теперь команда выглядит так:
Robocopy
“C:/Users/Greg Shultz” “J:/TheBackup” /MIR В
папке «C:/Users/Greg Shultz» хранятся некоторые скрытые системные файлы
и папки, резервные копии которых мне совсем не нужны — например, файл
NTUSER.DAT и папка AppData.
Кроме того, в папке «C:/Users/Greg
Shultz» хранится целый ряд точек соединения, которые мне тоже не нужны.
Точки соединения в Vista используются для связи различных системных
папок (например, Cookies и SendTo) с папкой профиля пользователя.
Для
исключения скрытых системных файлов я воспользуюсь переключателем
/XA:SH, для исключения папки AppData — переключателем /XD AppData, а
для исключения точек соединения — переключателем /XJD. Теперь мой
сценарий выглядит так:
Robocopy “C:/Users/Greg Shultz” “J:/TheBackup” /MIR /XA:SH /XD AppData /XJD Одна
из особенностей Robocopy заключается в том, что когда утилита
сталкивается с файлом, который используется в данный момент другой
программой, она останавливается и ждет, пока файл закроют, чтобы
продолжить операцию копирования. Через каждые 30 секунд Robocopy
осуществляет попытку повторного копирования файла. Количество повторных
попыток по умолчанию — один миллион (я не шучу)! При таком раскладе
операции резервного копирования вряд ли суждено когда-нибудь
завершиться, поэтому количество повторных попыток стоит ограничить
каким-то разумным числом.
Для изменения количества попыток
повторного копирования используется переключатель /R, а для изменения
интервала между повторными попытками — переключатель /W. Сократим количество повторных попыток до пяти с интервалом в 15 секунд
— тогда после разумного периода ожидания Robocopy сможет нормально
продолжать работу:
Robocopy “C:/Users/Greg Shultz” “J:/TheBackup” /MIR /XA:SH /XD AppData /XJD /R:5 /W:15 Как
и все утилиты с интерфейсом командной строки, Robocopy информирует
пользователя о состоянии операции прямо в окне командной строки, но
куда удобнее было бы сохранять эти сведения в файле журнала. Чтобы
иметь полное представление о проделанных операциях, воспользуемся для составления журнала переключателем /V. Но вот сведения
о прогрессе копирования каждого файла в процентах мне вряд ли
понадобятся, поэтому включим в сценарий переключатель /NP. Чтобы
создать файл журнала, воспользуемся переключателем /LOG, который
предусматривает замену существующего журнала новым при каждом следующем
резервном копировании. Теперь сценарий выглядит так:
Robocopy “C:/Users/Greg Shultz” “J:/TheBackup” /MIR /XA:SH /XD AppData /XJD /R:5 /W:15 /V /NP /LOG:Backup.log Создание своего собственного сценария
Теперь,
когда вы знаете, как работают подобные сценарии и какие для этого нужны
переключатели, можете открыть Блокнот, ввести команду и сохранить файл
как «RobocopyBackup.cmd». Чтобы сценарий и открытый файл журнала не
препятствовали процессу копирования, мы создали в корневом каталоге
отдельную папку «BackupTool» («C:/BackupTool») и сохранили сценарий в
ней.
После
каждой операции резервного копирования файл журнала будет появляться в
той же папке, где хранится сценарий. Имейте в виду: несмотря на то, что
журнал — это простой текстовый файл, он может оказаться слишком
объемным для Блокнота, поэтому лучше открывать его в WordPad или другом
текстовом процессоре.
Теперь для создания дополнительной
резервной копии данных достаточно дважды щелкнуть на ярлыке файла
RobocopyBackup.cmd, чтобы запустить сценарий, а по завершении работы —
посмотреть файл Backup.log. При желании можно запланировать
автоматическое выполнение сценария с помощью Планировщик заданий (Task Scheduler).
Источник: http://www.winblog.ru |