суббота, 3 мая 2008 г.

Резервное копирование с помощью архиватора RAR на сервере Windows 2003.

http://phorum.key.ru/viewtopic.php?f=16&t=21224

Резервное копирование с помощью архиватора RAR на сервере Windows 2003.

Документ создан: 28 апреля 2005 г.
Последняя редакция: 28 апреля 2005 г.
Технология внедрена: февраль-март 2005 г.

Источники.
Справка по архиватору RAR

Цель.
Обеспечить ежедневное резервное копирование файлов на сервере с возможностью быстрого восстановления отдельных файлов и каталогов. Также, необходимо, обеспечить возможность записи резервных копий на доступные носители (например, DVD-ROM).

Основные принципы.
Принципов не много: максимально надёжно, быстро и дёшево.

Краткий обзор имеющихся средств.
Так как целью является максимально снизить затраты на приобретение ПО и максимально увеличить скорость развёртывания, я не буду искать существующие комплексы резервного копирования, а возьму то, что есть «под рукой».
А под рукой у меня есть только встроенное в Windows 2003 средство ntbackup, которое зарекомендовало себя, как абсолютно непригодное для автоматического бэкапа пользовательских файлов, по причине регулярных сбоев, случаев невозможности восстановить файлы и отсутствием средств сжатия и разбиения резервных копий, для последующей записи на DVD.
Вторым средством, оказавшимся «под рукой» был всеми любимый RAR, который подходил по всем параметрам, но не имел графического интерфейса для организации бэкапа. А он нам нужен? Этот граф. интер. – подумал я. Настоящему сис.админу нужна только командная строка, которая как раз имеется. Вот о ней, а вернее о параметрах rar.exe мы и поговорим.

Идеология.
Идея такова: написать небольшой .cmd файл, который поставить в scheduler для ежедневного запуска. Создать специальную папку на дополнительном винчестере, куда складывать файлы резервных копий. Для наглядности и быстрого поиска нужного файла имена файлам давать следующим образом: год-месяц-день. Например: 2005-04-28 .rar

Реализация.
Собственно в .cmd файл добавить следующую строку:

"c:\Program files\WinRAR\rar" a -ag+YYYY-MM-DD -ac -ep2 -ilogG:\BackUp\backupERR.log -m5 -os -ow -r -rr15p -v4400m -t -y G:\BackUp\ @G:\BackUp\backupRAR.lst

Теперь пояснение.
После установки архиватора WinRar, в папке по-умолчанию, кроме файла winrar.exe у нас есть ещё файл rar.exe – это архиватор командной строки, его и будем использовать.

Команда “a” – означает создание нового архива, далее с префиксом “-” идут ключи.
Ключи:

-ag+YYYY-MM-DD – указывает, что к имени файлов *.rar будет добавлена строка с текущей датой, у нас получиться вот так: 2005-04-28.rar

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

-ep2
сохранять при архивировании полные пути файлов, то есть в архиве у Вас будет не каша, а такая же структура каталогов, как и на диске. Искать файлы в архиве так, значительно удобней.

-ilogG:\BackUp\backupERR.log
если возникнут ошибки, в этот файл они будут записаны. Если ошибок нет – то и файла этого не будет.

-m5
указывает степень сжатия.(–m0 без сжатия), я указал максимальную.

-os
сохранять потоки NTFS, долго объяснять. Короче, если у Вас файловая система NTFS, этот ключ лучше оставить. Надеюсь у Вас сервер не на FAT 32? ;-)

-ow
cохранять информацию о правах доступа к файлу при архивации и восстанавливать ее при извлечении. Так как у меня вполне налаженная система прав доступа, восстанавливать её всю заново в ручную было бы огромной проблемой, поэтому очень хорошо, что в rar есть такая функция.

-r
рекурсивная обработка подкаталогов. Будут архивироваться все вложенные папки и файлы, иначе только указанный Вами каталог.

-rr15p
добавить информацию для восстановления. Если некоторые биты в архивах будут повреждены, есть шанс эти биты восстановить и не потерять весь архивный файл. Чем больше информации для восстановления, тем больше шанс не потерять бэкап. Я указал размер добавляемой информации для восстановления - 15%(15p) от объёма архива. На практике эту функцию мне проверять не приходилось. Так что, хотите оставляйте этот ключ, хотите нет. Я оставил. Пусть будет. Так. На всякий случай.

-v4400m
максимальный размер одного тома. Получившийся архив будет разбиваться на несколько кусков, размер этих кусков мы и указываем. Так как размер стандартного DVD – 4,7 Gb, то значение должно быть около этих 4,7 Gb. Опытным путем было получен размер файлов, при котором один файл гарантированно влезет на один DVD – это 4400 Mb.

-t
протестировать файлы после архивирования. Ну что тут ещё пояснять, заархивировали – надо проверить.

-y
на любые вопросы rar будем отвечать «ДА»

С ключами всё, далее идёт указание папки, куда будут записываться архивные файлы, например: G:\BackUp\

А вот на параметре @G:\BackUp\backupRAR.lst остановимся особо.
Вообще говоря, это список файлов(папок), подлежащий архивированию. Если у Вас только одна папка, которую надо сохранять, вместо этого списка можете указать её, у меня же надо было архивировать несколько папок в разных местах диска. Поэтому я не стал их писать все в командную строку, а поместил список этих папок в отдельный файл, а ссылку на этот файл указал после значка @.
Список строится так: одна строка – одна папка. Заковычевать пути не нужно.

Важно: если у Вас есть русские буквы в названии папок, обязательно указывайте их в файле в DOS кодировке, иначе rar их не увидит и будет ругаться: File Not Found.

Ну, вот и всё. Для быстрого извлечения отдельных файлов из архива я использую уже не rar.exe, а WinRAR.exe - быстро и удобно. Открыл архивный файл, пометил что извлекать, указал куда и всё. Файл восстановлен. Запись на болванки DVD рекомендуется делать не реже раза в месяц. К сожалению, записывать придётся вручную, потому как процес автоматической подачу следующей болванки и выемки уже записанной я пока не придумал :-)

Удачи. И не угробьте случайно сервер. Потому как я за это отвечать не намерен.

_________________
Создать можно все. Вопрос только во времени, желании и средствах...
Но не всё, созданное тобой - окупится!