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

Обновлено и опубликовано Опубликовано:

Тематические термины: iRedMail.

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

Официальная документация на английском языке по резервированию iRedMail и его восстановлению доступна по пути docs.iredmail.org/backup.restore.html.

Создание копий

Для данной системы есть две возможности создания копий — автоматическая и ручная.

Автоматическое резервное копирование

По умолчанию, при установке iRedMail в планировщик cron добавляются задания по созданию резервных копий баз данных — это может быть MySQL, SOGo, ldap (зависит от выбора во время установки).

Пример заданий в cron:

30   3   *   *   *   /bin/bash /var/vmail/backup/backup_mysql.sh

1   4   *   *   *   /bin/bash /var/vmail/backup/backup_sogo.sh

* в данных примерах система создает резервные копии для базы данных MySQL/MariaDB и базы SOGo.

По умолчанию, копии помещаются в каталог /var/vmail/backup.

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

Также, копии создаются только для баз данных, но сама почта (по умолчанию, находится в каталоге /var/vmail/vmail1) не резервируется, что является проблемой, поскольку именно она и является главной ценностью.

Ручное копирование

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

Копируем базы данных

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

/bin/bash /var/vmail/backup/backup_mysql.sh

* путь до bash может быть другим — проверить можно командой which bash.

Резервные копии баз данных находятся в каталоге /var/vmail/backup. Они содержат архивы для всех баз, которые отвечают за работу сервиса. Для копирования бэкапов, можно воспользоваться одной из следующих команд:

mv /var/vmail/backup/mysql/2018/04/21/* /mnt/backup/

* в данном примере, мы копируем резервную копию баз mysql за 21 апреля 2018 года в каталог backup носителя, который был примонтирован в каталог /mnt.

scp /var/vmail/backup/mysql/2018/04/21/* dmosk@192.168.0.15:/backup

* в данном случае мы копируем тот же бэкап, но на другой компьютер сети.

Копируем почту

По умолчанию, каталог для хранения переписки — /var/vmail/vmail1. Чтобы создать копию, достаточно скопировать его содержимое.

Это можно сделать, например, следующей командой:

cp -R /var/vmail/vmail1/* /mnt/backup/

Также, можно создать сжатый архив для экономии дискового пространства:

tar -czvf /mnt/backup/vmail.tar.gz /var/vmail/vmail1

* в этом примере мы создадим архив vmail.tar.gz для каталога с почтой.

Синхронизация

Процесс копирования резервных копий можно автоматизировать при помощи скриптов с применением rsync. Подробнее о настройке rsync для автоматического копирования читайте в статье Настройка и использование Rsync Server.

Перед восстановлением или переносом

В случае восстановления данных на рабочем сервере, никаких дополнительных действий не потребуется — можно переходить к следующему шагу.

В случае переноса сервера или его полной переустановки, необходимо сначала выполнить установку iRedMail, желательно, той же версии и на ту же операционную систему. Для этого можно воспользоваться инструкциями Установка и настройка iRedMail на CentOS 7 или Почтовый сервер iRedMail на Ubuntu. После установки можно сразу переходить к восстановлению.

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

Перед началом восстановления, переносим резервные копии на новый сервер.

Восстановление баз данных

Нам необходимо восстановить несколько баз — содержимое /var/vmail/backup/mysql/. В моем случае было:

  • amavisd
  • iredadmin
  • iredapd
  • mysql
  • roundcubemail
  • vmail

Если мы переносим нашу почтовую систему на новый сервер, базу mysql восстанавливать не нужно.

 Архивы баз находятся в сжатом виде. Первым делом, распаковываем их:

bzip2 -d amavisd-*.sql.bz2

bzip2 -d iredadmin-*.sql.bz2

bzip2 -d iredapd-*.sql.bz2

bzip2 -d mysql-*.sql.bz2

bzip2 -d roundcubemail-*.sql.bz2

bzip2 -d vmail-*.sql.bz2

* если система вернула ошибку и не распаковала архив, необходимо установить пакет bzip2.

Теперь можно восстановить базы:

mysql -v -u root -p amavisd < amavisd-*.sql

mysql -v -u root -p iredadmin < iredadmin-*.sql

mysql -v -u root -p iredapd < iredapd-*.sql

mysql -v -u root -p mysql < mysql-*.sql

* напомним еще раз, базу mysql восстанавливать не нужно, если мы перенесли почту на новый сервер. 

mysql -v -u root -p roundcubemail < roundcubemail-*.sql

mysql -v -u root -p vmail < vmail-*.sql

Восстановление почты

Копируем данные в каталог /var/vmail/vmail1 (в случае, если мы не выбрали другой при установке).

Если мы создавали архив, то сначала распакуем его, например:

tar -xvf vmail.tar.gz

и переносим распакованное содержимое в каталог хранения почты (по умолчанию, /var/vmail/vmail1):

mv /tmp/var/vmail/vmail1/* /var/vmail/vmail1/

* в моем случае, распакованный архив находился в каталоге /tmp/var/vmail/vmail1; каталог для хранения почты — /var/vmail/vmail1.

Восстановление конфигов

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

  1. /var/www/roundcubemail/config/config.inc.php
    где путь /var/www может быть другим. Конфиг для roundcube.
  2. /etc/postfix/mysql*.cf
    настройки postfix.
  3. Содержимое /etc/dovecot/conf.d, файлы /etc/dovecot/dovecot-mysql.conf и /etc/dovecot/dovecot.conf.
    настройки dovecot.
  4. Содержимое /var/lib/dkim
    сертификаты для подписи DKIM.

 

# Серверы # Почта
Дмитрий Моск — частный мастер
Была ли полезна вам эта инструкция?

Да            Нет