Резервне копіювання за допомогою robocopy

У 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 потоків.