使用 rsync 进行 cyrus 邮件迁移时保留未读标记

使用 rsync 进行 cyrus 邮件迁移时保留未读标记

我用同步在我的 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 设置为其他内容,否则该域中的用户将不会拥有拆分域路径。

一般来说,您希望源计算机和目标计算机之间的配置尽可能相似。

相关内容