web-dev-qa-db-ja.com

実行中のサーバーでMaildirを安全に移動する

Postfixおよびcourierimapデーモンがまだ実行されている間に、いくつかのメールボックスディレクトリを新しいディスクに移動したいと思います。

問題は、ファイルの移動中に新しいメールがメールボックスに受信された場合はどうなるかということです。 ¿それは安全ですか?

ありがとう!

2
siete

メールボックスファイルを使用している場合は、これを行わないでください。 Maildirを使用している場合は、サービスをシャットダウンせずに少なくとも一部の作業を実行できます。

配信されるすべての電子メール、およびすべてのIMAPアクセスにより、メールボックスファイルが変更されます。ファイルが破損する可能性があります。

最善の方法は、IMAPとローカル配信を停止し、postfixが受信メールをキューに入れることを許可することです。次に、移動が終了したら、ローカル配信をオンに戻すと、キューに入れられたすべてのメールが配信されます。

4
Jenny D

いいえ、安全ではありません。

サービスウィンドウを宣言し、ダウンタイムをスケジュールします。セカンダリMXは受信メールをキャッシュし、メンテナンスウィンドウを適切にスケジュールした場合でも、ユーザーは数時間なくてもキャッシュできます。

rsyncを使用して、既存のメールスプールを新しいディスクにコピーし、2回目の実行に必要なダウンタイムを決定するのにかかる時間を測定します。たとえば、増分rsyncの実行に4時間かかる場合、5時間のスケジュールされたダウンタイムが必要です。ダウンタイムの開始の5〜6時間前に、rsyncを再度開始します。メンテナンスウィンドウが実際に開始される前に完了しない場合は、ノーゴーでスケジュールを変更します。

含まれている場合は、定期メンテナンスを開始します

  • 受信メールとIMAPの自動再起動を一時停止して無効にします
  • おそらくシングルユーザーモードに移行する
  • rsyncを再度実行します
  • マウントポイントを変更する
  • リブート
  • 新しいディスクが正しくマウントされているかどうかを確認します
  • 受信メールをIMAPで再度有効にする
  • リブート
  • 上司に電話した後、成功を宣言する、GoTOパブまたは自宅
0
HBruijn