ESC

Start typing to search across invoices, services, domains, tickets, and more...

Search... Ctrl+K
aaPanel / BaoTa

Резервное копирование и перенос сайтов в aaPanel/BaoTa на новый сервер

7 шагов 14 мин чтения 2 просмотров 0
Содержание

И для повседневной защиты данных, и при переезде на более мощный сервер IMIDC владельцу сайта нужны резервное копирование и перенос сайтов в aaPanel/BaoTa. Инструкция подходит для aaPanel и BaoTa Linux на Debian/Ubuntu и CentOS/Rocky/AlmaLinux: настраиваем бэкапы по расписанию, отправку копий в удалённое хранилище, разбираем общий порядок работы плагина переноса в один клик и самый надёжный ручной способ — tar для файлов и mysqldump для базы данных, а в конце приводим чек-лист смены DNS.

Шаг 1: Резервное копирование сайтов и баз данных по расписанию в aaPanel/BaoTa

Откройте в боковом меню панели раздел Cron и создайте задачи типа «Backup Site» и «Backup Database». Выберите все или отдельные сайты, запуск ежедневно ночью и разумное число хранимых копий (например, 7) с учётом объёма диска. По умолчанию копии хранятся в /www/backup:

ls /www/backup/site /www/backup/database
du -sh /www/backup/*
df -h /www
Копии только на том же сервере ненадёжны: при сбое диска, случайном удалении или взломе они пропадут вместе с сайтом. Обязательно храните ещё одну копию на другом сервере или в объектном хранилище.

Шаг 2: Отправка бэкапов aaPanel в удалённое хранилище

В магазине приложений панели найдите и установите плагин хранилища (FTP, S3-совместимое объектное хранилище и т. п.), укажите данные доступа, затем в задачах Cron выберите это хранилище местом сохранения копий. В качестве цели для FTP или rsync можно использовать и другой сервер IMIDC — так вы получите географически разнесённый бэкап.

Шаг 3: Плагин переноса в один клик (переезд всего сервера)

Разработчик панели предлагает плагин переноса в один клик. Общий порядок такой: установите ту же панель на новый сервер, включите в её настройках API и добавьте IP старого сервера в белый список; на старом сервере установите плагин переноса, укажите адрес и API-ключ новой панели, выберите сайты, базы и FTP-аккаунты и дождитесь окончания. Названия и интерфейс меняются от версии к версии — ориентируйтесь на свою панель. Версии PHP и MySQL на обоих серверах лучше держать одинаковыми.

Шаг 4: Ручной перенос — архив сайта через tar и дамп базы через mysqldump

Если плагин не сработал или нужно перенести лишь несколько сайтов, ручной способ даёт полный контроль. Выполните на старом сервере (замените example.com и example_db своими каталогом и базой). Ключ --single-transaction делает согласованный дамп InnoDB без блокировки таблиц.

# On the OLD server
mkdir -p /root/migrate && cd /root/migrate
tar -czf example.com.tar.gz -C /www/wwwroot example.com

# Export the database (consistent dump for InnoDB, keeps utf8mb4)
mysqldump -uroot -p --single-transaction --routines --triggers \
  --default-character-set=utf8mb4 example_db | gzip > example_db.sql.gz

# Copy the Nginx vhost and rewrite rules for reference
cp /www/server/panel/vhost/nginx/example.com.conf /root/migrate/
cp /www/server/panel/vhost/rewrite/example.com.conf /root/migrate/rewrite-example.com.conf 2>/dev/null
ls -lh /root/migrate

Затем передайте файлы на новый сервер через rsync — он продолжает прерванную передачу и лучше scp справляется с большими файлами:

# Debian / Ubuntu
apt install -y rsync
# CentOS / Rocky / AlmaLinux
yum install -y rsync

# Push the files to the NEW IMIDC server
rsync -avP -e "ssh -p 22" /root/migrate/ root@NEW_SERVER_IP:/root/migrate/

Шаг 5: Восстановление сайта и базы на новом сервере

В новой панели сначала добавьте сайт с тем же доменом, создайте базу и пользователя с тем же именем (запишите пароль) и установите те же расширения PHP. Затем распакуйте файлы, исправьте владельца и импортируйте базу. Если пароль базы изменился, обновите конфигурацию сайта (например, wp-config.php в WordPress). Правила rewrite и SSL настройте заново в параметрах сайта — см. инструкцию «Сайт и SSL в BaoTa».

# On the NEW server, after creating the site and the empty database in the panel
cd /root/migrate
tar -xzf example.com.tar.gz -C /www/wwwroot/
chown -R www:www /www/wwwroot/example.com

gunzip < example_db.sql.gz | mysql -uexample_db -p example_db

Шаг 6: Проверка нового сервера через локальный файл hosts

До смены DNS пропишите в файле hosts своего компьютера новый IP для домена и проверьте главную страницу, вход в админку, загрузку файлов и оплату. После проверки удалите эту строку.

# Windows: C:\Windows\System32\drivers\etc\hosts
# macOS / Linux: /etc/hosts
NEW_SERVER_IP  example.com  www.example.com

Шаг 7: Чек-лист смены DNS

  • за 24–48 часов снизьте TTL A-записи примерно до 300 секунд;
  • выберите время минимальной нагрузки, включите режим обслуживания или приостановите изменения в админке;
  • ещё раз выгрузите и загрузите базу и выполните инкрементальный rsync каталога загрузок (команды ниже);
  • смените A-запись на новый IP и выпустите или установите SSL на новом сервере;
  • следите за журналом доступа старого сервера, пока запросы не прекратятся, и не отключайте его ещё несколько дней.
# Final sync of uploads changed since the first copy (run on the OLD server)
rsync -avP /www/wwwroot/example.com/ root@NEW_SERVER_IP:/www/wwwroot/example.com/

# Verify DNS after switching
dig +short example.com A
nslookup example.com 8.8.8.8

Частые вопросы

После переноса открывается стандартная страница панели или 404.

DNS ещё не обновился, у сайта не добавлен домен с www или без www, либо корневой каталог отличается от старого сервера. Проверьте список доменов и корневую папку в настройках сайта.

Импорт базы падает с ошибкой кодировки или «Unknown collation».

Обычно на новом сервере более старая MySQL без сопоставлений вроде utf8mb4_0900_ai_ci. Установите такую же или более новую версию либо замените сопоставление в дампе на совместимое.

Бэкап очень большой и передаётся медленно.

Сделайте первую полную синхронизацию rsync, пока сайт работает, а при переключении — только инкрементальную. Простой сократится до нескольких минут.

Если проблема не решена, создайте тикет — техподдержка IMIDC работает 24/7. Укажите IP сервера, версию ОС, выполненные команды и приложите скриншот ошибки, чтобы мы быстрее нашли причину.

Помог ли вам данный ответ?

Похожие руководства