Dovecot: バックアップ

なんちゃってレプリケーション。

環境

  • FreeBSD 14.1
  • Dovecot

設定

10-adm.conf

新しく/usr/local/etc/dovecot/conf.d/10-adm.confファイルを作成し、次の設定を書き込む。

service doveadm {
  inet_listener {
    port = 12354
  }
}
doveadm_password = password

プライマリ側、レプリカ側のいずれも同じ内容でよい。passwordの部分には、共通のパスワードを記述する。

ファイルの所有者と権限を変更しておく。

# cd /usr/local/etc/dovecot/conf.d
# sudo chown dovecot:dovecot 10-adm.conf
# sudo chmod 600 10-adm.conf

10-imap.conf

メールボックスの属性を取得できず、次のエラーを出すことがある。

dsync-local(user1)<H4N3LgTfumZXSwAAppmUVQ>: Error: Mailbox INBOX: Failed to get attribute comment: Mailbox attributes not enabled

これを回避するため、/usr/local/etc/dovecot/conf.d/10-imap.confを編集して、mail_attribute_dictの設定をグローバルに、imap_metadataの設定をprotocol imapブロック内に追加する。

mail_attribute_dict = file:%h/Maildir/dovecot-attributes
protocol imap {
  imap_metadata = yes
}

設定ファイル編集後、Dovecotを再起動。

# sudo service dovecot restart

バックアップ

doveadmコマンドを使って、バックアップを作成。

# /usr/local/bin/doveadm backup -u user1 tcp:mailserver.jp:12354
# /usr/local/bin/doveadm backup -u user2 tcp:mailserver.jp:12354

cron

cronに登録する。

# sudo crontab -e

内容は次のように、ユーザごとにコマンドを書き連ねる。

* * * * *	/usr/local/bin/doveadm backup -u user1 tcp:mailserver.jp:12354; /usr/local/bin/doveadm backup -u user2 tcp:mailserver.jp:12354

ユーザ数の多いシステムでのレプリケーションは推奨されていない。まあ、列記できる程度のユーザ数のシステムでのみ運用すべし、ということらしい。

タイトルとURLをコピーしました