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

Обращаем Ваше внимание на то, что при полном резервном копировании всех аккаунтов всех радио-станций на сервере сервер должен располагать достаточным свободным местом на диске, то есть если все файлы пользователей занимают, скажем, 50 гигабайт, то на сервере должно быть как минимум 100 гигабайт места. Если по какой-либо причине диск ограничен и нет возможности копировать все данные пользователей, включая медиа-файлы - в настройках резервного копирования в Интерфейсе Администратора есть возможность установить галочку компактного бэкапа: в этом случае медиа-файлы пользователя не копируются, только файлы настроек и база данных. Рекомендуется подключить как минимум этот режим, обычно пере-закачать снова медиа-файлы всегда можно, а восстановить настройки - достаточно сложно.

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

Резервное копирование сервера

Настроить регулярное резервное копирование можно через WEB - интерфейс администратора, для этого в разделе “Радио” выберите нужный аккаунт радио и нажмите на кнопку резервного копирования:


Можно как сразу создать резервную копию, так и запланировать регулярное резервное копирование по расписанию. В “Быстром” режиме система создает только дампы баз данных клиентов, конфигурационные файлы и прочее, всё кроме медиа-файлов. Таким образом бэкапы не будут занимать много места и настройки пользователя не потеряются. Настройки резервного копирования можно сохранить для данного одного аккаунта, или применить ко всем, используя соответствующие кнопки.

Резервные копии создаются в директории /var/users/backup, каждый файл там - это копия папки пользователя и его БД, называется файл аналогично имени пользоателя в системе. Если у Вас на сервере недостаточно места для хранения резервных копий - в эту директорию можно подключить сетевое хранилище средствами Linux, например через NFS, SSHFS, S3 Storage и так далее.

Запуск резервного копирования в консоли сервера

Кроме WEB-интерфейса администратора, Вы можете запустить резервное копирование через консоль:

cd /opt/bin
python3 sc_backup
Запуск команды без параметров запустит резервное копирование согласно настройкам, выставленным в WEB-интерфейсе.

Команда поддерживает параметры, например, резервное копирование всех аккаунтов:

cd /opt/bin
python3 sc_backup all

Быстрое резервное копирование всех аккаунтов:

cd /opt/bin
python3 sc_backup all quick

Восстановление из резервной копии

Допустим, у Вас есть бэкап аккаунта, который называется radio.tar.gz, чтобы его восстановить достаточно скопировать его в директорию /var/users/backup_restore и система восстановит его автоматически. В случае возникновения проблем, сообщение об ошибке будет видно напротив этого аккаунта в WEB-интерфейсе администратора.

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

Миграция на новый сервер при помощи резервного копирования текущего сервера

Если Вы модернизируете оборудование, или старый сервер начал выходить из строя - миграция на новый сервер осуществляется путем полного резервного копирование старого сервера и разворачивание резервных копий на новом. Что необходимо сделать:

На старом сервере:

  1. Обновитесь до последней версии Streaming.center: bash <(curl -s https://streaming.center/dist/update.sh)

  2. Создать полную резервную копию всех аккаунтов

    cd /opt/bin
    python3 sc_backup all

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

На новом сервере:

  1. Установить панель . При установке не обязательно указывать доменное имя старого сервера, на время восстановления резервных копий Вы можете установить платформу на IP адрес и сменить доменное имя и настроить SSL сертификаты позднее, используя утилиты
  2. В файле /etc/crontab закомментировать строки:
    */5 * * * * root /usr/local/bin/content_indexer 1>/dev/null 2>/dev/null
    */1 * * * * root python3 /opt/bin/sc_stats 1>/dev/null 2>/dev/null
    */15 * * * * root python3 /opt/bin/sc_backup 1>/dev/null 2>/dev/null
    */1  * * * * root python3 /opt/bin/sc_accounts 1>/opt/acc.out 2>/opt/acc.err
    0    * * * * root python3 /opt/bin/awstats 1>/dev/null 2>/dev/null
    30 2 * * 1 root /usr/bin/letsencrypt renew
    Во время восстановления резервных копий пусть никакие другие утилиты не работают по расписанию.
  3. Скопировать файлы резервных копий из старого сервера в папку /var/users/backup_restore на новом сервере.
  4. В консоли сервера перейти в папку: cd /opt/bin
  5. Запустить: python3 sc_backup.pyc - эта команда запустит восстановление из резервных копий. В случае возникновения проблем Вы сможете их увидеть в коносоли.
  6. Если переезжает и домен - в настройках ДНС домена сменить старый IP адрес на новый и дождаться переезда домена (может занимать несколько часов)
  7. Установить домен для радио, используя команду cd /opt/bin && ./change_host
  8. Запустить cd /opt/bin && ./ssl_enable для настройки SSL сертификата.
  9. Запустить скрипт обновления: bash <(curl -s https://streaming.center/dist/update.sh)
  10. Раскомментировать строки в файле /etc/crontab, которые закомментировали на шаге 2.

Восстановление шаблонов радио-аккаунтов (опционально)

Пока скрипт бэкапа не поддерживает восстановление шаблонов, которые Вы могли создать в WEB-интерфейсе администратора, но их можно перенести вручную, создав резервную копию соответсвующей таблице на старом сервере и восстановив её на новом:

Если пароль root от сервера MySQL у Вас “123” (его можно посмотреть в файле /opt/bin/utils.ini) - на старом сервере выполните:

mysqldump -u root -p123 sc_billing templates_broadcaster > templates_broadcaster.sql
mysqldump -u root -p123 sc_billing templates_reseller > templates_reseller.sql

Далее скопируйте файлы templates_broadcaster.sql и templates_reseller.sql на новый сервер и восстановите их там командой:

mysql -u root -p123 sc_billing < templates_broadcaster.sql
mysql -u root -p123 sc_billing < templates_reseller.sql
  • через ключ -p указывается пароль root от MySQL, в нашем примере - “123”, у Вас будет другой!