Если вы когда-либо пытались скопировать файл, заблокированный другим приложением, вы, вероятно, видели сообщение об ошибке, похожее на «Процесс не может получить доступ к файлу, потому что другой процесс заблокировал часть файла». Так как же вы все это копируете?
Начиная с XP, Windows поддерживала технологию Volume Shadow Copy, которая используется для включения функций предыдущих версий в Vista, а также для восстановления системы и резервного копирования. Для этого необходимо сделать временный снимок файла или диска, а затем разрешить приложению считывать снимок, даже когда другие приложения обращаются к файлу или изменяют его.
Что мы можем сделать, это использовать утилиту командной строки под названием HoboCopy, которая использует этот сервис для копирования файла.
Понимание предпосылок
HoboCopy и большинство других утилит резервного копирования используют две службы в Windows, и вам необходимо убедиться, что эти службы не отключены:
- Volume Shadow Copy
- Microsoft Software Shadow Copy Provider
Их можно оставить как ручной запуск, поэтому им не нужно постоянно работать. При необходимости Hobocopy запустит две службы автоматически, а служба Volume Shadow Copy будет отключена после того, как это будет сделано.
Использование HoboCopy для резервного копирования/копирования одного файла
Синтаксис немного странный, потому что HoboCopy действительно предназначен для резервного копирования всего набора папок. Мы можем использовать его для резервного копирования одного файла, передав в конце аргумент имени файла.
Примечание. В Windows Vista вам потребуется запустить командную строку режима администратора, щелкнув правой кнопкой мыши командную строку в меню «Пуск» и выбрав «Запуск от имени администратора».
Синтаксис:
hobocopy c: \ directoryname \ d: \ backupdirectory \
Например, я хочу сделать резервную копию моего файла c: \ users \ geek \ mail \ outlook.pst в d: \ backups \ outlook.pst. Вот синтаксис, который я бы использовал:
C: \> hobocopy c: \ users \ geek \ mail \ d: \ backups \ Outlook.pst
HoboCopy (c) 2006 Корпорация Вангдера. hobocopy@wangdera.com
Запуск полной копии с c: \ users \ geek \ mail to d: \ backups \
Скопированный каталог
Резервное копирование успешно завершено.
Резервное копирование началось в 2008-03-09 01:57:28 , завершено в 2008-03-09 01:58:39.
1 файл (606,45 МБ, 1 каталог) скопирован, 7 файлов пропущено
Использование HoboCopy для резервного копирования всего каталога
Гораздо более полезная задача – сделать резервную копию всей моей папки User, возможно, на внешнем жестком диске для безопасного хранения. Для этого мы хотим добавить пару аргументов командной строки.
/полный TD> | Скопировать все файлы td> TR> | ||||
/skipdenied TD> | Игнорировать любые сообщения об отказе в доступе из-за ошибок прав доступа. td> TR> | ||||
/г TD> | Копировать рекурсивно td> TR> | ||||
/г TD> | Не предлагайте, просто скопируйте все td> TR> Table> Синтаксис: hobocopy/full/skipdenied/y/r c: \ directoryname \ d: \ backupdirectory \ Давайте рассмотрим тот же пример, я хочу сделать резервную копию всего моего пользовательского каталога в d: \ backups \, поэтому я бы использовал эту команду: hobocopy/full/skipdenied/y/r c: \ users \ geek \ d: \ backups \ Выполнение этой команды, вероятно, займет очень много времени, поэтому вы можете вздремнуть или что-то в этом роде. В конце у вас должна быть почти идеальная копия каталога … если есть какие-либо ошибки в разрешениях, вы будете предупреждены о файлах, которые не были скопированы. На самом деле, любые файлы в вашем пользовательском каталоге не должны иметь этой проблемы. Использование HoboCopy для поэтапного резервного копирования диска Hobocopy также поддерживает пошаговое резервное копирование файлов, поэтому копирует только те файлы, которые были изменены с момента последнего резервного копирования. Это работает аналогично утилитам, таким как rsync, за исключением того, что hobocopy сохраняет дату последней резервной копии в файле, который необходимо указать в командной строке.
|