Бэкапы Бэкапы Бэкапы...
На просторах Интернета есть масса всякого софта, предназначенного для резервного копирования. Проблема в том, что львиная часть этого добра либо стоит денег, либо пашет как то не так как тебе охота. Что у меня есть: Windows server 2008 R2 standart edition, на нём поднят контроллер домена и на нём же имеется расшаренная для всех директория - аля файловая помойка. Необходимо производить ежедневное полное резервное копирование этой директории. Сразу оговорюсь, что простое копирование я не хотел рассматривать, ибо не сжатые файлы занимают кучу пространства, так что будем рассматривать вариант с использованием какого либо архиватора.
Стратегия
Итак, необходимо иметь полные резервные копии файловой свалки за последние 7 дней. Каждая копия должна быть зажата каким либо архиватором. Резервная коипя не должна храниться на том же компьютере, на котором работает сама файловая свалка, так что будем бэкапить на одну из машинок, находящейся в локалке (машинка пашет на Windows 7 Professional).
Выбор архиватора
Немало важный вопрос... Почитав различную инфу по тем или иным архиваторам я нашёл вполне убедительные аргументы в пользу открытого кода (который раз... :)). Я остановил свой выбор на 7zip, т.к. он имеет более высокую скорость и степень сжатия (по этим ссылкам факты: http://habrahabr.ru/post/49343/ http://kikizas.net/en/apps.7z.html http://yes.km.ua/index.php?option=com_content&view=article&id=107:testing-the-archives-winrar-vs-7zip-vs-hao-zip&catid=37:computers-soft&Itemid=61 ).
Как будет работать?
Немного почитав за все возможности консольной версии 7zip и вооружившись относительным знанием написания обычных скриптов для Windows в стиле *.bat файлов я накатал необходимые скрипты и аккуратно их разместил в планировщиках заданий. Итак, для начала скачаем сам архиватор 7zip для своей платформы (судя по разрядности) с сайта http://www.7-zip.org/download.html , далее его установим. В директории с установленным архиватором есть груда файлов, я взял оттуда только 3 файла - 7z.dll, 7z.exe, 7-zip.dll и скопировал их в заранее созданую директорию c:\scripts. В этой же директории создадим BAT файл (в моём случае это backupshare.bat) с следующим содержимым:
@echo off
"C:\scripts\7z.exe" a \\PCPC\officesharebackup\backupshare_%date:~-10,2%%date:~-7,2%%date:~-4,4%.7z c:\share\
где - \\PCPC\ - машинка на которую будет складироваться создаваемый архив;
\\PCPC\officesharebackup - расшареная директория на удаленной машинке куда складируется архив;
c:\share\ - директория на сервере которую нужно нам бэкапить;
Далее открываем планировщик заданий на сервере (он же Task Scheduler, который можно успешно разыскать в панели управления) и создаём в нём обычное задание, в качестве исполняемого приложения подсовываем c:\scripts\backupshare.bat и назначаем его на выполнение скажем в полночь. После сохранения задания, откроем его свойства и укажем чтобы оно выполнялось вне зависимости от того залогинен пользователь или нет. Прям как тут:
При сохранении изменений в задании, может поклянчить пароль, ввести при необходимости.
Тест
Запустим задание на выполнение и убедимся что на удаленой машинке начал создаваться необходимый нам бэкап в формате backupshare_деньмесяцгод.7z.
Создался? Отлично!
Зачистка
Но мы теперь имеем проблему с тем, что архивы будут копиться на удаленом хранилище каждый день и их объём будет все расти и расти. Необходимо сделать зачистку старых копий (которые старше 7 дней). Для этого на удаленой машинке (как я выше сказал она стоит на Windows 7 professional) нам также надо будет накать скрипт и также разместить его в планировщике заданий удаленной машины. Для этого создадим в произвольном месте BAT (скажем c:\dataclear.bat) файл с следующим содержанием:
forfiles -p "D:\officesharebackup" -s -m *.7z -d -7 -c "cmd /c del @PATH"
Я буду производить зачистку старых копий скажем в 8 утра (это дело остается на усмотрение творца и дирижера системы). Также как и на сервере так и на удаленой машинке в планировщик заданий толкаем на выполнение этот скрипт по тому же принципу что и на сервере. Проверяем... И у нас в действительности остаётся лишь 7 резервных копий за последние 7 дней как мы и заказывали.
Итог
Система пашет, я доволен, ни одного цента никому не заплачено. Я не рассмотрел здесь все возможности архиватора 7zip и не рассмотрел возможности в плане задачи каких то отдельных параметров при создании резервных копий, дополнительную документацию можно найти на сайтах разработчиков тех или инах программных продуктов. Ну а так в перспективе думаю ещё организовать отсылку уведомлений на почту при тех или иных событиях и в принципе мне этого будет достаточно.
Комментариев нет:
Отправить комментарий