我用同步在我的 cyrus 2.3.14 服务器(源)和 2.3.16 cyrus 服务器(目标)之间迁移邮件。但是我遇到了一点小问题。
在源 cyrus 服务器上,邮件存储在 /var/spool/cyrus/domain/d/domain_name 中,配额和 seen/sub 文件存储在 /var/lib/cyrus/domain/d/domain_name 中。在目标 cyrus 服务器上,邮件存储在 /var/spool/imap/domain_name 中,配额和 seen/sub 文件存储在 /var/lib/imap 中。在目标的 /etc/imapd.conf 文件中,我有默认域设置值域名和默认分区其值为:/var/spool/imap/domain_name。
因此我使用以下命令:
- *rsync -avt --delete --exclude "cyrus.**" /var/spool/cyrus/domain/d/domain_name cyrus_2.3.16_server:/var/spool/imap/domain/d/domain_name* 迁移邮件
和
- rsync-avt--删除--排除”.sub“ /var/lib/cyrus/domain/d/domain_name/user/cyrus_2.3.16_server:/var/lib/imap/user* 迁移看到的文件。
然后我提取邮箱.db从源服务器中删除域信息(因为我在目标服务器上设置了默认域并定义默认分区) 并将其导入到目标服务器 (ctl_mboxlist -u)。最后,我执行了 reconstruct 命令。
当我检查迁移的邮箱(存储在目标服务器中)时,我只收到未读邮件。我是否需要执行其他命令或步骤,或者告诉我我的方法是否错误?
先感谢您
答案1
您还需要将用户文件迁移到域路径:
首先 - 您不能删除 cyrus.header 文件,否则您将丢失唯一 ID 和已查看的信息。您最好保留 cyrus.index,这样您就不会丢失 \Answered、\Draft 和 \Flagged 信息(以及任何用户标记)- 然后 cyrus.cache 不会受到影响,尽管您可能还是会重建它以确保万无一失。
rsync -avt --delete /var/spool/cyrus/domain/d/域名 cyrus_2.3.16_server:/var/spool/imap/domain/d/域名
再说一遍——您为什么要放弃订阅文件?
rsync -avt --delete /var/lib/cyrus/domain/d/域名/user/cyrus_2.3.16_server:/var/lib/imap/domain/d/域名/user
最后 - 我会将 defaultdomain 设置为其他内容,否则该域中的用户将不会拥有拆分域路径。
一般来说,您希望源计算机和目标计算机之间的配置尽可能相似。