Настройка бэкапа и аварийного восстановления FreePBX Backup & Restore
- Сбои выполнения регламентных заданий резервного копирования в модуле Backup & Restore.
- Ошибки несоответствия версий модулей при переносе архива на новый хост (
Version mismatch during restore). - Потеря конфигураций диалплана, учетных записей SIP/PJSIP и архива системных записей CDR/CEL после аварии накопителя.
- Таймауты SSH/FTP/S3 при отправке тяжелых архивов с записями разговоров на удаленное хранилище.
1. Архитектура резервного копирования FreePBX
Модуль Backup & Restore во FreePBX 15/16/17 оперирует метаданными системы, конфигурационными файлами Asterisk (/etc/asterisk), базой данных asterisk/asteriskcdrdb и медиафайлами (/var/lib/asterisk/sounds, /var/spool/asterisk/monitor).
2. Создание и настройка хранилища (Storage Location)
- Перейдите в меню Settings → Filestore → Storage.
- Добавьте новое хранилище типа SSH (SFTP), FTP, Email или Amazon S3.
- Для SSH укажите IP-адрес сервера бэкапов, порт, путь (например,
/backups/freepbx) и пару SSH-ключей.
3. Конфигурация сценария резервного копирования
В меню Admin → Backup & Restore → Backups создайте резервную копию:
- Backup Name: Daily_Full_Backup
- Items to backup: Отметьте модули CDR, System Audio, Core, PBX Settings.
- Storage Location: Выберите ранее настроенное хранилище.
- Schedule: Укажите периодичность запуска через cron-синтаксис (например, каждый день в 02:00:
0 2 * * *). - Maintenance: Настройте ротацию (удалять копии старше 14 дней).
4. Ручное создание бэкапа через CLI (fwconsole)
# Просмотр доступных профилей бэкапа
fwconsole backup --list
# Запуск процедуры бэкапа по ID или имени
fwconsole backup --backup="Daily_Full_Backup" --transaction=cli_run_01
# Ручной дамп базы данных MySQL на случай аварии
mysqldump -u root asterisk > /backup/asterisk_manual.sql
mysqldump -u root asteriskcdrdb > /backup/asteriskcdrdb_manual.sql5. Процедура аварийного восстановления на чистый сервер
- Разверните идентичную версию FreePBX Distro на новой виртуальной машине или сервере.
- Обновите все модули ядра до актуального состояния:
fwconsole ma upgradeall && fwconsole reload - Перенесите архив
.tar.gzв директорию/var/spool/asterisk/backup/Uploads/. - Запустите процедуру восстановления через консоль:
fwconsole restore --file=/var/spool/asterisk/backup/Uploads/backup_2025-01-01.tar.gz - Перезапустите стек сервисов и перечитайте конфигурацию:
fwconsole reload fwconsole restart
Частые вопросы (FAQ)
Можно ли восстановить бэкап со старой версии FreePBX 13/14 на новую FreePBX 16/17?
FreePBX 15+ поддерживает механизм кросс-версионного импорта (Legacy Restore Engine), но для минимизации сбоев рекомендуется сначала обновить модули на исходной машине или восстанавливать архив поблочно без системных сетевых параметров.
Почему архив бэкапа весит десятки гигабайт и зависает при выгрузке?
Основной объем занимают аудиозаписи разговоров в /var/spool/asterisk/monitor. Разделите регламенты: создайте легкий ежедневный бэкап только конфигураций и баз данных, а медиафайлы синхронизируйте отдельно через rsync или restic.
Что делать, если после восстановления не поднимается база MariaDB?
Проверьте права на сокет /var/lib/mysql/mysql.sock, права пользователя asterisk на каталоги БД и восстановите целостность таблиц командой mysqlcheck -u root --auto-repair -A.
Как восстановить доступ к веб-интерфейсу FreePBX, если после restore слетел пароль администратора?
Сбросьте пароль через CLI-утилиту fwconsole: fwconsole unlock <имя_пользователя> или fwconsole admin resetpassword --username=admin.