なんちゃってレプリケーション。
環境
- 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
ユーザ数の多いシステムでのレプリケーションは推奨されていない。まあ、列記できる程度のユーザ数のシステムでのみ運用すべし、ということらしい。