Архивы: по дате | по разделам | по авторам

Делаем резервную копию данных с помощью WinRAR. Часть 1

АрхивСистема
автор : Евгений aka f2065    01.03.2005

Настало время подумать о сохранности особо важных данных на вашем компьютере. Расскажем, как легко и просто можно решить задачу резервирования файлов с помощью популярного архиватора WinRAR.

Ни один персональный компьютер не обеспечивает 100% гарантии сохранности данных. Причем, информация может пропасть из-за множества факторов: вирусы, ошибки пользователя, хакеры, поломка жесткого диска, ограбление, пожар. Некоторые пользователи применяют RAID-массивы - но это тоже не панацея. Итак, чтобы быть уверенным в том, что ценная информация никуда не денется - надо об этом позаботиться заранее.

Для начала рассмотрим варианты специализированного программного обеспечения. В большинстве случаев это ПО не делает ничего такого особенного, и все его задачи можно реализовать штатными средствами Windows, разве что красивого (и нередко запутанного) графического интерфейса не будет. Но при этом подобный софт как правило занимает место в системном трее, запускает свой собственный планировщик, и просит денег. В корпоративных системах, несомненно, применение таких программ оптимальнее, но не для домашней машины.

В Windows 2000/XP/NET встроено средство для резервного копирования - ntbackup.exe. Его преимущество состоит в том, что оно сильно интегрировано в систему, но есть и недостатки - неудобный для некоторых пользователей графический интерфейс, а также отсутствие хотя бы минимальной компрессии данных. И еще один серьезный недостаток (если мы претендуем на 100% надежность) - отсутствие избыточности данных для восстановления при утрате куска файла. Поэтому, я расскажу о применении для этих целей одного из самых мощных и популярных архиваторов - WinRAR.

Подумаем, какая же информация, хранимая на компьютере, достойна регулярной архивации. Это может быть почта, папки с документами, сообщения ICQ, "Избранное" браузера, настройки FTP-клиента, настройки других разнообразных программ.

Итак, приступим. Сначала создадим папку c:\backup, в которой будем создавать все, что понадобится для нашей цели, и папку c:\backup_out, где будут создаваться готовые архивы.

Составим список (обычный текстовый файл) того, что мы будет архивировать, назовем его backup_add.txt. Внимание, если в списке архивации будут русские буквы (например, папка "Избранное") - то этот список нельзя создавать в "Блокноте", ибо русские буквы должны быть к кодировке OEM (DOS,CP866) а "Блокнот" их пишет только в ANSI (WIN,CP1251), могу посоветовать использовать любую из многочисленных альтернатив блокнота - например редактор Bred 3. Чтобы избежать опечаток в указании путей и имен файлов - рекомендую использовать специальный плагин, встраивающийся в контекстное меню "Проводника" и помещающий в буфер обмена путь и имя выбранных файлов - Path2Clipboard.


Текстовый редактор Bred 3.


Path2Clipboard.

В списке перечисляем по одному каталогу или файлу в строке, допустимы стандартные маски (*,?), в конце строк через два слэша (//) можно писать комментарии. Итак, получится примерно такой файл:

=== backup_add.txt ===

C:\Docs\* // мои документы
C:\Program Files\eMule\config\* // настройки eMule
C:\Program Files\FLY2000TV\*.ini // настройки ТВ-тюнера
C:\Program Files\ICQ\2003b\* // история ICQ
C:\Program Files\The Bat\Mail\* // почтовая база TheBat!
C:\Documents and Settings\Username\Local Settings\Application Data\Microsoft\Outlook\* // записная книжка
C:\Documents and Settings\Username\Application Data\Microsoft\Шаблоны\* // настройки Office
C:\Documents and Settings\Username\Избранное\* // Избранное браузера

=== backup_add.txt ===

Если вы не знаете где программы, данные которых будем архивировать, их держат - не беда. В принципе, данные скорее всего где-то в недрах папок Documents and Settings или Program Files. Итак, меняем какие-нибудь данные в интересующей нас программе, затем запускаем в "Проводнике" поиск файлов, и в дополнительных параметрах поиска указывам дату последних изменений файла - с вчерашнего числа по сегодняшнее. После того как проводник что-то найдет, переключаем вид отображения на таблицу, и сортируем ее по колонке изменений даты. В конце будут только что измененные файлы, которые нас и интересуют. Также можно просто вдумчиво изучить каждый подкаталог в Program Files и Documents and Settings\Username и подумать о целесообразности сохранения оттуда каких-то файлов. Настройки программ как правило хранятся в файлах *.ini

Теперь список того, что необходимо архивировать, составлен. Но, в перечисленных в нем каталогах есть файлы, которые архивировать не надо (например, логи, *.tmp). Для этого составим аналогичный файл со списком исключений, назовем его backup_sub.txt. Список исключений может быть примерно таким:

=== backup_sub.txt ===

C:\Program Files\The Bat\Mail\*\Trash\* // корзины TheBat
C:\Program Files\The Bat\Mail\*\ACCOUNT.LOG // логи TheBat
*.tmp // разные временные файлы
*.bak // разные старые файлы

=== backup_sub.txt ===

Теперь, рассмотрим реестр, его части тоже можно архивировать (чтобы потом восстановить настройки программ). Куски реестра можно выгружать в файл из командной строки посредством стандартного regedit.exe c ключом /e:

regedit /e "файл.reg" "ветка реестра которую надо сохранить"

Обычно настройки пользовательских программ находятся в HKEY_CURRENT_USER\Software. Можно сохранять настройки разных тяжеловесных программ, например графического редактора, чтобы потом не настраивать под себя панель его инструментов. Или, например, настройки TheBat!.

Теперь настала пора создать файл сценария (.cmd или .bat), который это все будет выполнять. Сначала немного теории. Архивацию можно делать двумя принципиальными методами:

Вариант первый - каждый раз архивировать все, что необходимо. Это "обычный" тип архивации. Преимущества - более простое восстановление, один файл - меньше риск что-то потерять. Недостатки - каждый раз архивирование долго выполняется, каждый раз надо сохранять на резервный носитель большой по размеру файл;

Вариант второй - изредка архивировать все, что необходимо, а регулярно архивировать только изменившиеся файлы. Это называется "добавочный" тип архивации. Именно для этого у файлов есть специальный атрибут "Архивный". При архивации он автоматически сбрасывается, а при изменении файла - устанавливается, и таким образом можно узнать какие же файлы с момента последней архивации изменились.

Итак, начинаем писать файл сценария полной архивации (для первого варианта будет нужен только он, а для второго им будет делаться периодическая архивация), назовем его backup_full.bat. В состав WinRAR именно для подобных целей входит утилита работы с командной строкой - rar.exe. Описанные здесь ключи справедливы для версии 3.42, для более ранних версий что-то может и не получится.

=== backup_full.bat ===

rem сохраним некоторые настройки из реестра
regedit /e "c:\backup\thebat.reg" "HKEY_CURRENT_USER\Software\RIT\The Bat!"
rem настройки архиватора
set a_opt=a -ac -ag -cfg- -dh -ep2 -hpPASSWORD -m5 -mdg -r0 -rr10%% -s -idp
set a_files=@C:\backup\backup_add.txt
set a_not=-x@C:\backup\backup_sub.txt
set a_out=c:\backup_out\backup_full_
set a_log=c:\backup_out\backup_log.txt
del %a_log%
rem запуск архиватора
"C:\Program Files\WinRAR\Rar.exe" %a_opt% %a_not% %a_out% %a_files% >%a_log%
rem сохранение архива в надёжном месте
cscript c:\backup\backup.vbs %a_log%
exit

=== backup_full.bat ===

Что именно делают аргументы в a_opt - можно прочитать в C:\Program Files\WinRAR\Rar.txt, но отмечу две вещи: в -rr10%% - два знака % не случайно, - вообще знак процента - служебный (обозначает значение переменной), и чтобы система его воспринимала как простой знак, его надо указывать два раза подряд, в -hp - можно указать пароль с которым будет упакован архив (в примере пароль PASSWORD). В Windows 98/ME необходимо в свойствах bat-файла выделить под "перменные среды" конкретное кол-во памяти (не авто), например 4096.

Итак, после выполнения backup_full.bat у нас будет получаться полный архив файлов. Теперь можно написать еще один сценарий, который будет делать архивы только с изменившимися файлами, назовем его backup_inc.bat. Отличаться он будет только тем, что в строке a_opt надо добавить еще один аргумент "-ao" для обработки только изменившихся файлов.

Теперь, идем в планировщик (Панель управления -> Назначенные задания), и добавляем наши два сценария. Backup_full.bat пусть будет выполняться еженедельно или ежемесячно (впрочем, его можно вообще не вносить в планировщик, а периодически запускать вручную), а backup_inc.bat - ежедневно или при каждом включении.

Итак, теперь в папке c:\backup_out будут появляться архивы с сохраненными файлами. Теперь нужно предпринять какие-то меры для их гарантированной сохранности. Вариантов есть несколько: копирование на CD-RW/DVD-RW; отправка на FTP или отправка по e-mail. Об этом мы и поговорим в следующей части нашей статьи.

© ООО "Компьютерра-Онлайн", 1997-2024
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.