KumarinX Kaneko Ryogen Jean Michel Kaneko Photography MacOSX

cyrus ユーザメールボックス再構築

ほとんど FAQ のトラブルみたい

 昨日からメールが受信できなくなって(不思議と送信は出来る!)リモートでユーザアカウントを調べてみると Unknown mailbox path になっていたので仕方なく夜中に Labo に駆けつけた。クライアントからメールアクセスがあると cyrus がユーザメールボックスを探しに行って CPU の負荷が上昇してしまい Apache 下の PHPPerl まで動作が遅くなってしまってこのブログも異様に思い状態が続いていたらしい。姉歯さんのおかげで最近夜が忙しくって仕方がないし、PC の前に坐ってネットを見る時間は正月空けてからというものほとんど朝の仕事前のいっときしかなくっていて、以前の経験からこういうときこそ何かが起きるので Labo の G5 Dual の鯖機を SSH でリモートログイン出来る設定にしなくちゃと思いながら出来ずにいら案の定トホホの真夜中の鯖メンテなのだ。

メールの送信は外部から出来ることを確認していたので狙いは imapd こと cyrus くんである。リモートの Admin Tool のログには

DBERROR: dbenv->open ‘/var/imap/db’ failed: DB_RUNRECOVERY: Fatal error, run database recovery

と出ていたので昨年 Apple Support Discussions で話題になったログファイルの所有権が cyrus くんから system に移動してしまっていることに目星を付けたんだけどなんなくハズレ(^^;。

だけど TechInfo の Article ID: 107996 に『cyrus メールボックスの再構築』の記事を見つけたのでその通りにやってみる。左側文字がアポウの指示するコマンド。( )内文字はコマンド解説(アポウの記事にはなし)。

Welcome to Darwin!

$ su root

Password:

root# mv /var/imap /var/imap.old (mv=移動)

root# mkdir /var/imap (mkdir=新しいデレクトリの作成)

root# /usr/bin/cyrus/tools/mkimap

reading configure file…

i will configure directory /var/imap.

i saw partition /var/spool/imap.

done

configuring /var/imap

creating /var/spool/imap

done

root# chown -R cyrus:mail /var/imap (chown -R=再帰的に所有者:グループを変更)

root# sudo -u cyrus /usr/bin/cyrus/bin/reconstruct -i  (-u cyrus=ターゲットユーザcyrus)

 どうもこれを見ると再構築と言うよりPostifix のメールボックスを参照してまったく新たに cyrus メールボックスを作成するような感じ。壊れた /var/imap を移動してリネームしてしまい新たに /var/imap を作っている。そこへ mkimap を実行して新たなメールボックスを構築して再帰的に一切合切を cyrus 支配下に置くというなんとも荒っぽい仕事をした感じなんだね。これが cyrus のバグに因るものなのか OS X によるイタズラなのかは僕には知るスキルはありません(^^;。けれどこれでメールボックスは難なく復活。ただし POP プロトコルのクライアントは今まで受信してゴミ箱から削除していないメールの全てが復活してしまうし IMAP クライアントも既読メールやゴミ箱に棄てたメールが未読メールとして復活してしまう。メールサーバを利用している人には面倒を掛けます。ところでこの『cyrus メールボックスの再構築』のコマンド、OS X 10.4 Tiger Server ではリモートの Admin Tool に実装しているみたいなのでこのトラブルはほとんど FAQ の類みたい。覚え書きとして書いておく。