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

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

私が使うrsyncCyrus 2.3.14 サーバー (ソース) と 2.3.16 Cyrus サーバー (ターゲット) の間でメールを移行します。ただし、少し問題があります。

ソース cyrus サーバーでは、メールは /var/spool/cyrus/domain/d/domain_name に保存され、クォータと see/sub ファイルは /var/lib/cyrus/domain/d/domain_name に保存されます。宛先 cyrus サーバーでは、メールは /var/spool/imap/domain_name に保存され、クォータと see/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 --delete --exclude ".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 が失われ、表示された情報が失われます。\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 を別の値に設定します。そうしないと、そのドメイン内のユーザーには分割されたドメイン パスがなくなります。

一般的に、ソース マシンとターゲット マシンの構成はできる限り類似したものにする必要があります。

関連情報