Резервное копирование на WinRAR

Популярный архиватор WinRAR может использоваться в качестве программы для автоматического резервного копирования как на файловом сервере, так и на пользовательском компьютере для ручного запуска. Для организации резервного копирования придумано достаточно много специализированных программ, но для многих RAR стал уже практически штатной программой, так что, пожалуй, эта статью можно было бы смело назвать как «Резервное копирование подручными средствами».

Немного о самом резервном копировании

Резервное копирование - это та “соломка”, про которую все вспоминают в случае пропажи, порчи или искажения каких либо данных: файлов, баз данных 1С и т. п. Те, кто “постелил” ее вовремя и позаботился о сохранности данных наверняка не раз говорили “слава Богу”, когда случалась беда.

По методу копирования резервное копирование может быть полным или добавочным:

Полное копирование
Этот вид копирования подразумевает полное безусловное копирование заданных данных. Многие админы использую только этот вариант, что часто приводит к очень быстрому заполнению дискового пространства для резервных копий, и, как следствие, к весьма ограниченному количеству копий и с очень коротким сроком хранения. В сочетании с добавочным копированием этот метод позволяет организовать оптимальный тандем. Рекомендуемая периодичность – еженедельно, например, в ночь с воскресенья на понедельник
Добавочное копирование экономит объем архива
Добавочное копирование экономит объем архива
Добавочное копирование
В этом случае копируются только те данные, что были изменены с момента выполнения последнего копирования – в результате размер резервных копий сокращается во многие разы. Как видно на скриншоте, добавочные копии занимают в 50 раз меньше места, чем полные. При использовании этого метода при восстановлении данных необходимо распаковать последний основной архив полного копирования и последовательно (!) все архивы, созданные после него добавочным копированием в исходную папку в режиме замены файлов. Таким образом мы восстановим полный объем данных с учетом последних изменений. Немного хлопотно, но зато архивных копий можно держать гораздо больше, а значит и срок хранения значительно больше. Этот метод подходит для регулярного ежедневного выполнения.

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

Настраиваем программу для автоматического запуска

Ключи для командной строки

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

WinRAR.exe A <ключи> <имя архива> <@файл-список>

Из всего многообразия ключей запуска программы выберем только те, что непосредственно нужны для выполнения автоматического резервного копирования:

-ac – снять атрибут «Архивный»
Во время выполнения архивирования с файлов будет снят атрибут «Архивный». После какого-либо изменения файла, этот атрибут для него всегда устанавливается снова. Таким образом, этот атрибут является сигналом-признаком при выполнении добавочного копирования.
-ag[формат] – добавить к имени архива текущие дату и время
Добавляет к имени архива текущие дату и время при создании или обработке архива, задается шаблоном символов. Каждый символ шаблона формирует соответствующий символ даты или времени.
-ao – добавлять только файлы с установленным атрибутом «Архивный»
Именно этот ключ позволяет организовать добавочное копирование, выбирая для обработки только измененные файлы.
-ilog[имя файла] – записывать протокол ошибок в файл
Записывает протокол ошибок за время выполнения архивирования в указанный файл
-inul – не показывать сообщения об ошибках
Поскольку процесс архивирования должен проходить без участия человека, то сообщения эти ни к чему.
-m5 – метод сжатия
Выбираем максимальное сжатие.
-os – сохранять потоки NTFS
-r – включить в обработку вложенные папки
Копируем все, что находится во вложенных подпапках.
-rr[N] – добавить данные для восстановления
Дополнительная прослойка “соломки” на случай, если по каким-то причинам архив окажется поврежденным. Объем данных рекомендуется задавать в пределах 3...10%. Что бы задать объем данных для восстановления 5% используются ключ -rr5p. Ключ без дополнительных параметров -rr задает значение по-умолчанию 3% – обычно этого достаточно.
-s – создать непрерывный архив
Особый вид архива, упакованный специальным способом, при котором сжимаемые файлы рассматриваются, как один последовательный поток данных. Непрерывная архивация значительно увеличивает степень сжатия при добавлении в архив существенного количества небольших однотипных файлов с похожим содержимым. Конечно, дополнительные алгоритмы сжатия увеличивают время на упаковку и распаковку архива, но по сравнению с экономией места для резервных копий, это сущие пустяки. В зависимости от похожести файлов степень сжатия архива может достигать 40% от исходного объема файлов, особенно хорошо упаковываются файловые базы 1С – степень сжатия архива может достигать даже до 6...7%. Во время извлечения из непрерывного архива отдельных файлов архиватору приходится обрабатывать практически весь объем архива, что существенно увеличивает время на распаковку и, в зависимости от положения извлекаемых файлов в нем, может быть сопоставимо со временем распаковки всего архива. Но, согласитесь, в сравнении с эффективностью сжатия, это тоже не принципиально.
-t – протестировать файлы после архивации
Еще одна перестраховка, но как говориться лучше перебдеть...
-v4g – создать многотомный архив
Ключ -v[n] предназначен для нарезания больших архивов на куски приемлемых размеров. В данном случае нарезка осуществляется по 4GB на случай записи архива на DVD.
-x@<имя файла-списка> – не обрабатывать файлы, указанные в файле-списке
Сколько хлама может лежать на файловом сервере: это и музычка, и свеженький сериальчик, не говоря уже о туче временных файлов и прочего мусора – и все это закопано-перекопано по невообразимым папкам-подпапкам пользователей. Что бы наш сервер не пух от такого файлового спама в резервных копиях, уместно организовать для процесса архивирования фильтр, который и будет отсеивать “мух от котлет”. Для этого нужно составить текстовый файлик exclude.lst с перечнем всего, что мы не хотим видеть в архивных копиях:
*.tmp
~*.*
*.mp3
*.avi
*.wmf
*.mov
*.mkv
E:\Storage\Work\Account\Отчетность\Medoc\Medoclog-file.txt
E:\Storage\Personal\#old_users
@<имя файла-списка> – файл-список всего, что подлежит архивации
Аналогично предыдущему составляем текстовый файлик backup.lst в котором указываем все, что мы подлежит резервному копированию, только без фанатизма:
e:\FileStorage\*.doc*
e:\FileStorage\*.xls*
e:\FileStorage\*.ppt
e:\FileStorage\*.pdf
e:\FileStorage\*.psd
e:\FileStorage\*.cd*
e:\FileStorage\*.txt
e:\FileStorage\*.rtf
e:\FileStorage\*.dbf
e:\FileStorage\*.lnk
e:\FileStorage\*.dwg

e:\storage\Work\Account\ClientBank
e:\DataBases\1C

Командная строка запуска программы в автоматическом режиме

RAR запускаться как в GUI версии winrar.exe, так и в консольной rar.exe – по большому счету, для нашей задачи это не принципиально. Для запуска программы в автоматическом режиме используем приведенную ниже строку.

Полное резервное копирование

%ProgramFiles%\WinRAR\rar.exe A -ac -ag_YYYY-EEE_A  -ilogE:\Backup\backup.log -inul -m5 -os -r -rr -s -t -v4g -x@E:\Backup\Script\exclude.lst E:\Backup\backups\Company.rar @E:\backup\Script\backup.lst

Добавочное резервное копирование

Строка отличается от предыдущей наличием ключа -ao – архивировать только архивные (измененные) файлы.

%ProgramFiles%\WinRAR\rar.exe A -ac -ao -ag_YYYY-EEE_A  -ilogE:\Backup\backup.log -inul -m5 -os -r -rr -s -t -v4g -x@E:\Backup\Script\exclude.lst E:\Backup\backups\Company.rar @E:\backup\Script\backup.lst

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

Последнюю версию программы вы можете взять на официальном сайте Архиватора RAR.