这是我的情况:
我有一个邮件服务器,我们称之为mail1.site.com。我想做的是,建立一个新的邮件服务器,mail2.site.com,并将所有用户迁移过来。两者的设置都是 Postfix+Dovecot。通常,如果只有我一个人,我会设置新服务器,然后进入我的邮件客户端并将我的邮件拖过来,让它以这种方式移动我的邮件。但是,如果我有少数用户,我不能指望他们都足够精明,可以为他们帐户中的每个文件夹执行此操作。
有人对如何迁移有建议吗?将tar
所有数千封电子邮件/var/vmail
移入并解压缩它是否安全?我愿意接受建议。
是否可以在服务停机的情况下一步迁移所有这些?
如果是,您可以 tar/untar。但更好的方法是即时 rsync 邮箱,并且在服务停机时,您再次执行 rsync 以进行更新。
查看mailqueue,这应该是空的。smtp 在停机时不能接受任何邮件。但通常你有不同的情况。邮件队列保留无法发送的电子邮件。您可以查看此电子邮件。您决定留下此电子邮件,或迁移到新服务器。我在这里找到了程序:http: //abhijit.name/articles/configuration/moving_or_restoring_postfix_queue.html
即时复制邮箱有一个冒险。您可以静默测试指定用户,一切正常与否。你会看到移动邮箱与否。
仔细阅读 rsync 手册。测试一个邮箱,它只同步需要的信息,或者全部重写。使用适当的选项。
更糟糕的情况是当您无法进行某些故障服务时,您应该逐个用户迁移邮箱。然后你应该为两台服务器准备别名。两者都应该接受两个名称的电子邮件,但在内部使用别名行为将电子邮件重定向到正确的服务器。当您迁移 lat 用户时,您应该只将 MX 指向新服务器并等待旧的邮件队列清空,然后关闭它。
如果您从未这样做过,最好用一组邮箱对任何虚拟副本进行任何测试。那么你会增加机会,没有人会带着锋利的叉子和燃烧的火炬来拜访你:)
Dovecot 有一个名为
dsync
(wiki)的方便工具,旨在同步两个 dovecot 实例。一台服务器的 Maildir 层次结构被复制到另一台服务器。接收、发送、垃圾邮件、垃圾邮件 - 一切都被复制。主要优点是dsync
可以进行增量和双向复制。初始复制完成后,下一次运行仅复制新/更改的文件。更改发生的位置无关紧要 -dsync
确定哪个实例是最新的。