Прошло примерно полтора года с тех пор как я написал свой первый backup-скрипт на PowerShell. С тех пор значительно прибавилось количество объектов для резервного копирования и, соответственно, выросло количество скриптов. Все это значительно усложняет администрирование и мониторинг системы, если все это вообще можно назвать системой.
Тут и приходит идея систематизации и написания полноценной системы создания бэкапов. В качестве языка программирования мною был выбран PowerShell за его гибкость, удобный C#-подобный синтаксис и отсутствие необходимости что-либо перекомпилировать при изменении исходного кода. Единственный минус - не очень удобный отладчик, но это мы переживем.
Постановка задачи
Система в целом:
Тут и приходит идея систематизации и написания полноценной системы создания бэкапов. В качестве языка программирования мною был выбран PowerShell за его гибкость, удобный C#-подобный синтаксис и отсутствие необходимости что-либо перекомпилировать при изменении исходного кода. Единственный минус - не очень удобный отладчик, но это мы переживем.
Постановка задачи
Система в целом:
- Система состоит из ядра и конфигурационных файлов
- Добавление и изменение задач архивации должно быть максимально простым и быстрым
- Максимально универсально и абстрагировано от конкретных условий бэкапа
- Загружает файл задания по его имени, переданному в качестве параметра
- Имеет возможность загружать бэкапы в удаленное хранилище (средствами BITS, например)
- Ведет логи работы каждой задачи резервного копирования в целом, а так же фиксирует вывод каждой программы, выполняемой внутри задачи
- Оповещает о результатах бэкапов по электронной почте (опционально, по СМС). В случае ошибки, к письму должны прикрепляться заархивированные логи для каждой неудавшейся задачи
- Высылает на e-mail оповещение о результатах резервного копирования, в зависимости от настройки: либо отдельно для каждой задачи бэкапа сразу после ее завершения, либо, в указанный момент времени, общую сводку для всех заданий. При использования СМС-оповещение высылается только сводка по всем бэкапам в определенное время, желательно не ночью
- Для обеспечения согласованности данных должна быть реализована функция использования снапшотов VSS (утилита vshadow.exe). Управление использованием этой функции осуществляется отдельно для каждой задачи бэкапа
- Для каждой задачи архивации используется отдельный файл задания (скрипт на PowerShell). Пока не решил что именно там будет, но, по идее, там должен быть некий набор параметров архивации и инструкций (список запускаемых программ, порядок запуска и т.п.)
- Все базовые настройки (например, папка backup-конфигов, папка логов, архиватор и т.п.) хранятся в отдельном конфиге
Комментариев нет:
Отправить комментарий