web-dev-qa-db-ja.com

rsyncを使用したcyrusメールの移行中に未読フラグを保持する

rsyncを使用して、cyrus 2.3.14サーバー(ソース)と2.3.16 cyrusサーバー(ターゲット)の間でメールを移行します。しかし、私は少し問題があります。

ソースcyrusサーバーでは、メールは/ var/pool/cyrus/domain/d/domain_nameに保存され、quotaファイルとseen/subファイルは/ var/lib/cyrus/domain/d/domain_nameに保存されます。宛先cyrusサーバーでは、メールは/ var/Spool/imap/domain_nameに保存され、quotaファイルとseen/subファイルは/ var/lib/imapに保存されます。ターゲットの/etc/imapd.confファイルに、defaultdomainの値がdomain_nameに設定され、defaultpartitionの値が:/ varに設定されています。/pool/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を設定し、defaultpartitionを定義するためです。 =)そしてそれをターゲットサーバーにインポートします(ctl_mboxlist-u)。最後に、reconstructコマンドを実行します。

移行されたメールボックス(ターゲットサーバーに保存されている)を確認すると、未読メールのみが届きました。私の方法が間違っているかどうかを教えてくれる別のコマンドやステップはありますか?

前もって感謝します

2
Cédric

ユーザーファイルもドメインパスに移行する必要があります。

まず、cyrus.headerファイルを削除することはできません。そうしないと、一意のIDが失われ、表示されている情報が失われます。\Answered、\ Draft、\ Flaggedの情報(およびユーザーフラグ)が失われないように、cyrus.indexも保持することをお勧めします。そうすれば、cyrus.cacheが損なわれることはありませんが、とにかく再構築する可能性があります。念の為。

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を別のものに設定します。そうしないと、そのドメインのユーザーは分割ドメインパスを持ちません。

一般に、ソースマシンと宛先マシンの間で構成をできるだけ類似させる必要があります。

1
Bron Gondwana