iRedMail 备份还原

备份

备份邮箱

/var/vmail/vmail1 所有邮箱默认都存放在下面,这个路径在安装iRedMail的时候是可以配置的,所以真实的目录在你的服务器上可能不同。

邮件信息默认以Maildir 格式存储,即一封邮件信息是一个纯文本文件(但邮件正文是编码的),您可以使用类似工具或其他备份工具备份邮箱rsync

恢复后的邮箱,必须在 iRedMail 服务器上/var/vmail/vmail1 拥有用户vmail 、组vmail 、权限。0700

备份邮件帐户

iRedMail 每天都有 cron 作业来备份存储在 SQL/LDAP 数据库中的邮件帐户,您可以以用户身份运行以下命令来root 验证它:

crontab -l -u root

具有 OpenLDAP 后端的 iRedMail 服务器上的示例输出:

# iRedMail: Backup OpenLDAP data every day on 03:01 AM
1   3   *   *   *   /bin/bash /var/vmail/backup/backup_openldap.sh

# iRedMail: Backup MySQL databases every day on 03:10 AM
10   3   *   *   *   /bin/bash /var/vmail/backup/backup_mysql.sh

笔记:

  • 备份文件默认存储在目录下/var/vmail/backup ,如果要更改它,请更新BACKUP_ROOTDIR 备份脚本中的参数(例如/var/vmail/backup/backup_mysql.sh )。
  • SQL 备份是每个数据库的纯 SQL 文件。
  • LDAP 备份只是一个 LDIF 格式的普通文件。
  • 备份文件bzip2 默认是用压缩包压缩的,可以用命令解压bunzip2 。例如,bunzip2 file_name.bz2
  • 可以手动运行备份脚本。

手动备份额外数据

  • DKIM 密钥。它们/var/lib/dkim/ 默认存储在。如果您不备份它们,可以生成新密钥并且您必须dkim._domainkey.[YOUR_MAIL_DOMAIN] 使用新的 DKIM 密钥更新 DNS 记录 ( )。参考另一个文档生成 DKIM 密钥并更新 DNS 记录: Sign DKIM signature on outgoing emails for new mail domain
  • SOGo(Calendar, Contacts, Tasks):查看SOGo官方文档: http: //wiki.sogo.nu/backupRestore
    • 从 iRedMail-0.9.7 开始,iRedMail 将在 iRedMail 安装期间设置每日 cron 作业来备份 SOGo 数据。
    • 恢复时(使用sogo-tool ),您必须首先恢复所有用户及其文件夹,然后是他们的首选项。之后,您必须再次恢复所有首选项才能取回共享日历。那是因为它首先设置文件夹的共享权限(必须存在,才能设置它们)。在大多数情况下共享不会起作用,因为源的权限尚未设置。只有首选项的第二次恢复才能设置共享文件夹,因为现在权限是可以的。确保在两次权限恢复之间重启 memcached,否则 SOGo 将使用第一次运行时的旧信息。
  • OpenLDAP 后端:
    • 如果您在 OpenLDAP 中启用了额外的 LDAP 架构文件,您应该备份它们,将它们复制到新服务器并启用它们。否则,由于缺少必需的 LDAP 属性,您无法导入备份 LDIF 文件。

恢复

如何恢复 SQL 数据库

您可以简单地恢复由上述备份脚本备份的纯 SQL 文件。

警告

如果您在新的 iRedMail 服务器上恢复,请不要 mysql 恢复从旧服务器导出的 名为 exported 的数据库,它包含在旧服务器上的许多组件(例如 Postfix、Dovecot、Roundcube webmail)中使用的 SQL 用户名和密码。新的 iRedMail 服务器已经有相同的 SQL 帐户但密码不同,因此请不要恢复 mysql 数据库,否则由于 SQL 凭据不正确,几乎所有服务都将无法运行。

让我们以 SQL 数据库iredapd 为例。假设备份文件是 /var/vmail/backup/mysql/2021/11/19/iredapd-2021-11-19-23-02-01.sql.bz2 .

  • 备份文件压缩为bzip2.bz2 文件名有扩展名),请先用命令解压bunzip2bunzip2 /var/vmail/backup/mysql/2021/11/19/iredapd-2021-11-19-23-02-01.sql.bz2你应该得到解压文件/var/vmail/backup/mysql/2021/11/19/iredapd-2021-11-19-23-02-01.sql
  • 以 SQL root 用户身份登录 MySQL / MariaDB 服务器。
  • 恢复解压后的SQL文件:
USE iredapd;
SOURCE /var/vmail/backup/mysql/2021/11/19/iredapd-2021-11-19-23-02-01.sql;

就是这样。

您应该使用相同的步骤但不同的备份文件来恢复其他数据库。同样,不要恢复名为 的数据库mysql

恢复数据库后

如果您从旧的 iRedMail 版本恢复,您需要先更新 SQL 结构。

例如,如果您要将 iRedMail 从 恢复0.9.10.9.5 ,则必须检查 iRedMail-0.9.1 和更新版本的升级教程,然后应用升级教程中提到的所有 SQL 结构更改。

您可以在此处找到所有 iRedMail 升级教程