Простой способ резервного копирования стандартными средствами Windows

В состав Windows 7 и 8 входит утилита robocopy, служащая для репликации папок. Давайте рассмотрим, как с помощью нее мы можем организовать резервное копирование наших файлов. Никакие дополнительные программы нам не понадобятся, возьмем лишь то, что уже есть в Windows.



Для примера будем бэкапить папки “Документы” и “Рабочий стол” (мы же страсть как любим хранить все на рабочем столе! )) в папку D:\backup. В этой папке создаем два текстовых файла backup.bat и work.bat и папку _log, где будем хранить отчеты. Подробно описывать командную строку и bat-файлы здесь не буду, информации достаточно в интернете, только вставлю комментарии где нужно.

Наш бэкап будет точной копией наших файлов, “зеркалом”, со всеми вытекающими последствиями. Например, если вы удалите нужный файл, то после синхронизации он будет удален и из резервной копии. Это не всегда удобно, но мы рассматриваем частный случай.

Файл backup.bat с комментариями


@echo off

D:
cd D:\backup\
В этой папке храним наши резервные копии и bat-файлы.

set day=%DATE:~0,2%
set month=%DATE:~3,2%
set year=%DATE:~6,4%

set /a ttt=%TIME:~0,2%
set minute=%TIME:~3,2%
set second=%TIME:~6,2%

if %ttt% LSS 10 (
set hour=0%ttt%) else (
set hour=%ttt%)

set logfilename=%year%-%month%-%day%_%hour%-%minute%-%second%_backup.log
Задаем имя лог-файла. Собственно, все вышестоящие манипуляции с датой-временем лишь для того, чтобы это имя было удобным.

call D:\backup\work.bat>D:\backup\_log\%logfilename%
Выполняем копирование, и результаты пишем в лог.

2>nul forfiles /p «D:\backup\_log» /d -14 /c «cmd /c del /f /q @file»
Удаляем логи старше 14 дней (ключ /d -14)


Файл work.bat с комментариями


@echo off
echo Резервная копия всех моих файлов
echo (Способ подсмотрен в блоге blog.eorteam.com)
echo.
С чего начинается написание любой программы? Правильно — с копирайтов! Обратите внимание, консоль работает в кодировке CP866! Иначе кракозябры вместо русских букв.

ROBOCOPY с:\Users\username\Desktop d:\backup\Desktop /FFT /MIR /R:3 /W:5 /TEE /FP /NDL /NP

Это основная команда, рассмотрим ее подробнее
c:\Users\username\Desktop — “откуда”.
d:\backup\Desktop — “куда”.
/FFT — используется время файлов FAT. Огрубляет время последнего изменения файлов до двух секунд, благодаря этому в разных системах файл определяется, как не изменившийся, и лишний раз не копируется. Этот ключ полезен, например при бэкапе на сетевое хранилище (NAS).
/MIR — создает зеркало дерева папок.
/R:3 /W:5 — число повторных попыток неудавшегося копирования файла и интервал в секундах между попытками. Если не задать, то любой битый сектор подвесит наш скрипт почти на год (миллион попыток с интервалом 30 секунд)
Ну а дальше идет вкусовщина:
/FP — в выводе будут отображаться полные пути файлов, это нам для лога.
/NDL — а вот имена папок отображаться не будут.
/NP — и ход процесса, число скопированных процентов файла тоже.
Вообще утилита robocopy очень гибкая, все ключи можно посмотреть например здесь.

ROBOCOPY c:\Users\username\Documents d:\backup\Documents /FFT /MIR /R:3 /W:5 /TEE /FP /NDL /NP
Аналогично копируем Документы. Обратите внимание, ярлыки папок типа “Мои рисунки” будут раскрыты, и будут скопированы файлы из родительской c:\Users\username\Pictures\


Теперь сделаем наш бэкап регулярным. Перелогиниваемся как Администратор, и запускаем Планировщик заданий (Пуск — Панель управления — Администрирование). Создаем новую задачу.
На вкладке «Общие» в разделе «Параметры безопасности» обязательно включаем «Выполнять вне зависимости от регистрации пользователя». Обратите внимание, задача должна запускаться от имени учетной записи Администратор.
На вкладке «Триггеры» создаем расписание, когда будет проводиться синхронизация. Галочка «Включено» должна стоять.


Будем бэкапить каждый день по вечерам. Можно создать несколько триггеров.

На вкладке «Действие» создаем «Запуск программы» и указываем нашу «Программу или сценарий» D:\backup\backup.bat. Остальные параметры настраиваются по желанию. Например можем направлять себе уведомление по почте. Не забываем нажать «OK». Все, теперь из-под Администратора можно уходить и продолжать свою обычную работу. В 11 часов вечера резервная копия будет создана, а в папке D:\backup\_log появится файл с сегодняшним отчетом.

Что дальше делать с этой копией? Можно архивировать, и хранить все версии, можно синхронизироваться с облаком. Но это все делается с помощью дополнительных программ, а значит это тема отдельного разговора.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *