В данной статье мы рассмотрим автоматизированный процесс создания резервных копий системы. FreePBX 14 резервное копирование – важнейшая процедура устранения внештатной ситуации, то есть способная восстановить конфигурацию. Данный процесс возможно автоматизировать с помощью настроек модуля Backup and Restore. Следовательно, переключаемся в меню Admin → Backup & Restore.
Техническое задание
Просто так описывать поля не интересно, поэтому выполним техническое задание по примеру резервирования FreePBX 14:
- Полное резервное копирование конфигурации системы ежемесячно.
- Хранение последних трех полных копий системы на локальном носителе.
- Копирование CDR-данных ежегодно на локальный носитель и отправка их на FTP.
- Отправка копий на удаленный сервер по FTP.
- Отправка e-mail оповещения в случае ошибки
Описание
Прежде всего, необходимо удалить существующие настройки резервирования (Default backup).
Модуль позволяет создавать план резервирования через пошаговый мастер создания резервных копий. Для этого необходимо нажать кнопку Backup Wizard. Мастер установки содержит 5 шагов, в которых необходимо заполнить всю информацию и установить параметры. Мы будем использовать, тем временем простое создание копии через кнопку + New Backup.
Настройка сервера
Во-первых, необходимо создать сервер FTP, на который будем отправлять данные. Переходим в меню Servers, которое находится справа. Выбираем Add Server → New FTP server:
Далее заполняем данные, необходимые для авторизации на удаленном FTP-сервере.
Доступны следующие сервера:
- Email – отправка резервной копии на электронную почту в качестве вложения.
- FTP – отправка файлов на FTP сервер.
- Local – сохранять файлы локальном сервере.
- MySQL Server – внешний MySQL сервер, на который Asterisk будет отправлять копии базы данных.
- SSH Server – это может быть любая другая АТС, с которой вы можете также делать резервные копии (бэкапы).
Следующим шагом переходим в настройки создания плана резервного копирования – Backup.
- Backup Name – имя процесса создания резервной копии. Стоит называть интуитивно понятно, чтобы различить среди прочих процессов.
- Description – описание процесса.
- Status Email – адрес электронной почты, на которую следует отправить уведомления и ходе данного процесса.
- On Failure Only – отправлять письма только в случае неудачи.
Далее модуль предлагает выбрать области резервного копирования. Если у вас компания до 50 человек, следовательно, рекомендуем выполнять Full Backup ежемесячно.
Мы будем выполнять согласно нашего ТЗ и выберем Full Backup.
HOOKS
Данный раздел позволяет подключать собственные скрипты в процесс выполнения резервного копирования. Например, это может быть скрипт, который делает отметку о бэкапе в БД, или формирует письмо, или вносит данные во внешнюю систему. Данный раздел позволяет определить, в какой момент резервного копирования или восстановления из копии подключать данные скрипты:
- Pre-Backup Hook – в этом поле можно указать путь к скрипту, который необходимо запускать перед проведением резервного копирования.
- Post-Backup Hook – путь к скрипту, который необходимо выполнить после процесса бэкапа.
- Pre-Restore Hook – скрипт запускаемый перед началом процесса восстановления сервера из бэкапа.
- Post-Restore Hook – запуск скрипта после проведения восстановления.
- Backup Server – сервер, на котором необходимо произвести процесс резервирования. Это может быть как локальный сервер с вашей АТС (This server), либо это может быть любой другой сервер. Данные сервера можно настроить в разделе Servers.
Пользователь и владелец файлов-скриптов должен быть asterisk
Мы выбираем ранее созданный сервер для отправки на FTP хранилище.
STORAGE LOCATION
В данном окне настраивается хранилище для файлов резервного копирования. Вы можете настроить различные FTP, SSH, Email, MySQL и даже Amazon сервера для хранения различных экземпляров копий (бэкапов). Чтобы выбрать сервер, перенесите его из правой части (Available Servers) в поле слева, которое называется Storage.
BACKUP SCHEDULE
Расписание создания резервных копий.
Run Automatically – периодичность создания копий. Доступны следующие опции:
- Never – не запускать данный скрипт.
- Hourly – запускать ежечасно. Скрипт запускается с самого начала нового часа. Например, в 02:00:00.
- Daily скрипт запускается ежедневно в полночь.
- Weekly – запуск скрипта происходит еженедельно в воскресение в полночь.
- Monthly – ежемесячно каждое первое число в полночь.
- Annually – ежегодно каждое первое января в полночь.
- Reboot – проводить бэкап при команду перезагрузки.
- Custom – собственное расписание бэкапов, позволяет определить конкретное время проведения бэкапа. При данной выборе настраиваются, минуты, часы, дни недели, месяцы и дни месяцев создания копий.
Согласно наших условий и ТЗ, нам необходимо создавать копии каждый месяц 1-го числа в 02:00. Хранить не более трех копий.
Maintenance – удаление старых копий:
- Delete After – возраст файла, который необходимо будет удалить. Например, можно удалять файлы спустя 1 месяц хранения.
- Delete After Runs -количество копий, которые необходимо хранить на сервере. Например, если вы укажите цифру 5, то после того, как сервер сделает 5 бэкапов, на 6 копирование будет удален самый старый файл. Тем самым, сервер будет поддерживать постоянное количество копий в размере 5, удаляя самый старый из них файл.
Жмем кнопку Save and Runs.
Настройка восстановления
На вкладке Restore, показаны все доступные резервные копии. Данные копии можно загрузить дистанционного, используя вкладку Import. Или копии с данного сервера, используя вкладку Browse → Local Storage.
В навигации между директориями, выберите необходимые файлы. Они буду иметь расширение .tgz:
Выбрав необходимый файл, нажмите Go. Сразу после этого, вам будет предложено галочкой отметить какие сегменты бэкапа вы хотите восстановить (CDR, голосовую почту, конфигурацию и так далее). После выбора нажмите кнопку Restore и процесс будет запущен. Отметим, что процесс восстановления из локально файла абсолютно аналогичен. Просто необходимо нажать на копку Browse и далее выбрать необходимый файл.
Подведем итог. FreePBX 14 резервное копирование по нашему техническому заданию выполнено.