На тесте выполню перенос биллинговой системы ABillS с одного сервера на другой.
Сначала, закомментируем watchdog если он настроен и периодические задания в cron, остановим apache2 чтобы не проходили онлайн платежи.
Сообщим разработчикам биллинга о миграции на другой сервер, чтобы они сбросили привязку к железу.
Сделаем резервную копию базы данных, файлов биллинга и директории с конфигурациями:
service apache2 stop
/usr/abills/libexec/periodic backup
cd /root/
tar -cvjf /root/abills_`date +%Y-%m-%d`.tar.bz2 /usr/abills/
tar -cvjf /root/etc_`date +%Y-%m-%d`.tar.bz2 /etc/
Если сервер высоконагружен, первый раз для теста, можно выполнить с пониженным приоритетом использования дисковой системы и CPU:
nice -n 19 ionice -c2 -n7 /usr/abills/libexec/periodic backup
nice -n 19 ionice -c2 -n7 tar -cvjf /root/abills_`date +%Y-%m-%d`.tar.bz2 /usr/abills/
nice -n 19 ionice -c2 -n7 tar -cvjf /root/etc_`date +%Y-%m-%d`.tar.bz2 /etc/
Скопируем резервные копии на новый сервер в домашнюю директорию пользователя:
scp -P 22 /usr/abills/backup/stats-`date +%Y-%m-%d`.sql.gz user@192.168.5.5:~
scp -P 22 /root/abills_`date +%Y-%m-%d`.tar.bz2 user@192.168.5.5:~
scp -P 22 /root/etc_`date +%Y-%m-%d`.tar.bz2 user@192.168.5.5:~
На новом сервере частично выполним установку ABillS как я описывал в этой статье — Установка и настройка биллинговой системы ABillS
Не забываем перенести конфигурацию Apache2 /etc/apache2/sites-enabled/abills_httpd.conf
Также перенести или установить SSL сертификат, например от Let’s Encrypt, как я описывал в статье — Установка Certbot в Ubuntu
На новом сервере создадим MySQL базу данных и пользователей, распакуем архив с резервной копией и импортируем его:
mysql --default-character-set=utf8 -u root -p
drop database abills;
CREATE DATABASE abills DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
flush privileges;
quit
gzip -d stats-`date +%Y-%m-%d`.sql.gz
tar -xvjf stats_`date +%Y-%m-%d`.tar.bz2
mysql -D abills < stats-`date +%Y-%m-%d`.sql
Если SQL файл большой и чтобы видеть статус импорта, можно воспользоваться утилитой PV:
apt install pv
pv stats-`date +%Y-%m-%d`.sql | mysql -u root -D abills
Проверим целостность базы данных и выполним скрипт который поможет найти ошибки:
cd /usr/abills/misc/db_check
./db_check.pl
cd /usr/abills/misc/
perl perldeps.pl apt-get -batch
cd /usr/abills/misc/
./post-install.sh
Проверим логи:
/usr/abills/var/log/sql_errors
/var/log/httpd/abills-error.log
Проверим работу дополнительных модулей, в том числе платежных, если биллинг еще и обновлялся, то свои шаблоны лучше удалить и потом внести изменения в новых, так как в новых версиях ABillS в шаблонах могут быть добавлены новые поля, функции и т.д.
В FreeRadius укажем новый адрес базы данных биллинга и перезапустим его.
Проверим нет ли ошибок при выполнении billd:
/usr/abills/libexec/billd -all DEBUG=5
Когда все настроено переносим задания в /etc/crontab