使用rsync在cyrus邮件迁移期间保留未读标志

我使用rsync迁移我的cyrus 2.3.14服务器(源)和2.3.16 cyrus服务器(目标)之间的邮件。 但是我有一个小问题。

在源码赛勒斯服务器上,邮件存储在/ var / spool / cyrus / domain / d / domain_name中,配额和可见/子文件存储在/ var / lib / cyrus / domain / d / domain_name中。 在目的地cyrus服务器上,邮件存储在/ var / spool / imap / domain_name中,配额和可见/子文件存储在/ var / lib / imap中。 在目标的/etc/imapd.conf文件中,我设置了defaultdomain ,其值为domain_name默认分区的值为:/ 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 –delete –exclude“ .sub”/ var / lib / cyrus / domain / d / domain_name / user / cyrus_2.3.16_server:/ var / lib / imap / user *来迁移看到的文件。

然后从源服务器中提取mailboxes.db ,删除域信息(导致在目标服务器上设置defaultdomain并定义默认分区)并将其导入目标服务器(ctl_mboxlist -u)。 完成后,我执行reconstruct命令。

当我检查迁移的邮箱(存储在目标服务器中)时,我只收到未读邮件。 是否有另一个命令或步骤我不得不告诉我,如果我的方法是错误的?

先谢谢你

您还需要将用户文件迁移到域path:

首先 – 你不能删除cyrus.header文件,否则你将失去唯一的id,你将失去所看到的信息。 你也可以保留cyrus.index,所以你不会丢失\ Answered,\ Draft和\ Flagged信息(加上任何用户标志) – 然后cyrus.cache不会受到伤害,尽pipe你可能会重build为了确定。

rsync -avt –delete / var / spool / cyrus / domain / d / domain_name cyrus_2.3.16_server:/ var / spool / imap / domain / d / domain_name

再说一遍 – 你为什么要放弃订阅文件?

rsync -avt –delete / var / lib / cyrus / domain / d / domain_name / user / cyrus_2.3.16_server:/ var / lib / imap / domain / d / domain_name / user

最后 – 我会设置defaultdomain是别的,否则你的用户在该域名将不会有拆分域path。

通常,您希望configuration在源机器和目标机器之间尽可能相似。