Резервное копирование/копирование файлов, которые «используются» или «заблокированы» в Windows (командная строка)

Если вы когда-либо пытались скопировать файл, заблокированный другим приложением, вы, вероятно, видели сообщение об ошибке, похожее на «Процесс не может получить доступ к файлу, потому что другой процесс заблокировал часть файла». Так как же вы все это копируете?

Начиная с 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, возможно, на внешнем жестком диске для безопасного хранения. Для этого мы хотим добавить пару аргументов командной строки.

/полный Скопировать все файлы
/skipdenied Игнорировать любые сообщения об отказе в доступе из-за ошибок прав доступа.
Копировать рекурсивно
Не предлагайте, просто скопируйте все

Синтаксис:

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 сохраняет дату последней резервной копии в файле, который необходимо указать в командной строке.

/statefile = имя файла Этот флаг указывает файл, который содержит последнюю информацию о резервной копии.
/инкрементный Копировать только те файлы, которые были изменены с момента последней полной копии.

Синтаксис:

hobocopy/incremental/statefile = имя файла/y/r c: \ имя_каталога \ d: \ backupdirectory \

Пример:

hobocopy/incremental /statefile=d:\lastbackup.dat/y/r c: \ users \ geek \ d: \ backups \

При первом запуске этой команды вам нужно будет использовать/full вместо/incremental, иначе вы получите сообщение об ошибке, поскольку файл состояния еще не создан. После этого вы можете запустить инкрементное резервное копирование с ключом/incremental.

Это было бы отличным способом автоматического резервного копирования набора папок как часть запланированной задачи.

Загрузите HoboCopy с sourceforge.net

Оцените статью
TutoryBird.Ru
Добавить комментарий