Резервне копіювання / копіювання файлів, які використовуються або заблоковані в Windows (командний рядок)
Якщо ви коли-небудь спробували скопіювати файл, заблокований іншою програмою, ви напевно бачили повідомлення про помилку, подібне до "Процес не може отримати доступ до файлу, оскільки інший процес заблокував частину файлу". Так як ви все одно копіюєте його?
З XP, Windows підтримує технологію під назвою Volume Shadow Copy, яка використовується для живлення попередніх функцій в Vista, а також System Restore і резервних копій. Це робить тимчасовий знімок файлу або диска, а потім дозволяє програмі читати з знімка, навіть коли інші програми отримують доступ або змінюють файл.
Ми можемо використовувати утиліту командного рядка HoboCopy, яка використовує цю службу для копіювання файлу.
Розуміння передумов
HoboCopy і більшість інших утиліт резервного копіювання використовують дві служби в Windows, і вам доведеться перевірити, що ці служби не вимкнено:
- Копіювання тіней
- Постачальник програмного забезпечення для тіней Microsoft Software
Їх можна залишити як ручний запуск, тому вони не повинні працювати весь час. Hobocopy автоматично запускатиме два сервіси, коли це буде необхідно, а послуга "Тіньова копія томів" буде відключена після завершення.
Використання HoboCopy для резервного копіювання / копіювання одного файлу
Синтаксис трохи дивний, тому що HoboCopy дійсно призначений для резервного копіювання цілого набору папок. Ми можемо використовувати його для резервного копіювання одного файлу шляхом передачі в аргументі filename в кінці.
Примітка: у Windows Vista потрібно запустити командний рядок в режимі адміністратора, клацнувши правою кнопкою миші на командному рядку в меню "Пуск" і вибравши "Запуск від імені адміністратора"..
Синтаксис:
hobocopy c: \ t
Наприклад, я хочу створити резервну копію мого c: користувача geek mail Outlook.pst до d: backups Outlook.pst. Ось синтаксис, який я б використав:
C: hobocopy c: користувачі geek mail d: резервні копії Outlook.pst
HoboCopy (c) 2006 Wangdera Corporation. [email protected]
Початок повної копії з c: користувачі geek по електронній пошті d: резервні копії \ t
Скопійований каталог
Резервне копіювання успішно завершено.
Резервне копіювання почалося в 2008-03-09 01:57:28, завершено в 2008-03-09 01:58:39.
Скопійовано 1 файл (606,45 МБ, 1 каталог), пропущено 7 файлів
Використання HoboCopy для резервного копіювання всього каталогу
Набагато більш корисним завданням було б резервне копіювання всієї папки користувача, можливо, на зовнішній жорсткий диск для збереження. Для цього потрібно додати пару аргументів командного рядка.
/ повний | Скопіюйте всі файли |
/ skipdenied | Ігнорувати будь-які повідомлення, позбавлені доступу, через помилки дозволів. |
/ r | Копіювати рекурсивно |
/ y | Не підказуйте, просто скопіюйте все |
Синтаксис:
hobocopy / full / skipdenied / y / r c: ім'я_каталогу d: backupdirectory \ t
Давайте перейдемо до того ж прикладу, я хочу зробити резервну копію всього мого каталогу користувача до d: backups, тому я б використав цю команду:
hobocopy / full / skipdenied / y / r c: користувачі geek d: резервні копії \ t
Ця команда, ймовірно, займе дуже багато часу для завершення, так що ви можете захотіти подрімати або щось. Зрештою, ви повинні мати майже ідеальну копію каталогу… якщо є якісь помилки дозволів, ви будете сповіщені про файли, які не копіювали. Реально будь-які файли у вашому каталозі користувачів не повинні мати цієї проблеми.
Використання HoboCopy для інкрементного резервного копіювання диска
Hobocopy також підтримує резервне копіювання файлів поступово, тому він буде копіювати файли, які були змінені після останньої резервної копії. Це працює так само, як і утиліти, такі як rsync, за винятком того, що hobocopy зберігає останню дату резервного копіювання у файлі, який потрібно вказати в командному рядку.
/ statefile = ім'я файлу | Цей прапор вказує файл, який містить останню резервну інформацію. |
/ інкрементний | Копіюйте лише ті файли, які були змінені після останньої повної копії. |
Синтаксис:
hobocopy / incremental / statefile = ім'я_файла / y / r c: ім'я_каталогу d: backupdirectory \ t
Приклад:
hobocopy / incremental /statefile=d:upbackup.dat / y / r c: користувачі geek d: резервні копії \ t
Коли ви вперше запустите цю команду, вам потрібно буде використовувати / full замість / incremental, або ви отримаєте помилку, оскільки файл стану ще не створено. Після цього ви можете запустити додаткове резервне копіювання за допомогою перемикача / incremental.
Це буде відмінним способом автоматичного резервного копіювання набору папок як частини запланованого завдання.
Завантажити HoboCopy з sourceforge.net