状況:
数ギガバイト分のメールのオフライン バックアップがあります。少し調べたところ、rsync 経由で新しいサーバーの MailDir にメールを復元できることを確認しました。
私のかなり基本的な質問:
ファイル名...
私のオフライン バックアップ ディレクトリ内のすべての電子メールのファイル名には、古いサーバー名が含まれています。
現在のホスト名は なので、を に 置き換えるためにadmin.example.com
まず何らかのバッチを設定し、その後オフライン バックアップからオンライン MailDir に rsync を実行する必要がありますか?search and replace
server1.old-example.com
admin.example.com
もしそうなら、何か推奨される方法はありますか?
THX
答え1
ホスト名は重要ではありません。最初のホスト名まではすべて、,
定義された形式を持たない単なる一意の ID です。(ホスト名を含める目的は、ファイル名の一意性を保証することです。たとえば、複数の MX サーバーが NFS 経由で同じ Maildir に配信する場合、これにより、まったく同時に配信されたメッセージでも衝突しないことが保証されます。)
したがって、Maildir 全体を新しいサーバーにダンプするだけで、すべてが機能するはずです。新しい IMAP サーバーは、ホスト名に関係なく、見つかったメッセージを取得しますcur/
。(ただし、コメントで述べたように、UID/GID の所有権が正しいことを確認してください。)
(ただし、新しいサーバーにアップロードする前に、「dovecot.index」ファイルなどの古いサーバー固有のジャンクを削除することをお勧めします。)
サブフォルダを見逃さないように注意してください。サブフォルダは通常、隠しサブディレクトリとして保存されます。たとえば、「Archive/2022」フォルダは、Maildir/.Archive.2022/
サブフォルダの保存方法は次のとおりです。5月サーバーによって異なります。
直接復元が失敗した場合は、代わりに IMAP 経由でメッセージをアップロードできます (サーバーが希望どおりにメッセージを保存できるようにします)。たとえば、mutt
またはneomutt
ターミナルベースのメール アプリを使用します。
実行して
mutt -f ~/Mail_backup/
ローカル Maildir を開きます (「cur/」の部分を含めないでください)。Shift+T
.
Enterすべてのメッセージを選択(「タグ付け」)するために使用します。「コピー」を使用して; Shift+C、対象の IMAP サーバーの URL を指定します。
タグ付けされたコピーをメールボックスにコピー:imaps://[メールアドレス]/受信トレイ
注: サブフォルダーの名前は、 IMAP サーバーの種類に応じて
Archive.2022
、またはになる場合がありますArchive/2022
。(すべてのサブフォルダーを INBOX の下に配置することを要求している Courier サーバーの場合も同様ですINBOX.Archive.2022
。)すべてのメッセージがアップロードされたら、x変更を保存せずに終了し (誤って変更した場合に備えて)、手順 1 に戻って残りのサブフォルダーを復元します。