本日の成果 : SMTPサーバが死んでたのを直した
我が家に新しくNASがやってきたのだけど、そいつがなんだか高性能で、障害発生時にメールを送る機能があるらしい。ではさっそく設定しようと思って、設定して、テストメールを送ろうとしたのだけど、エラーになってしまう。あれあれあれ?
SMTPサーバ側のエラーログを見てみると、こんなメッセージが。
warning: SASL authentication failure: Could not open /etc/sasl2/sasldb2: gdbm_errno=5
SMTP認証用のデータベースにアクセスできないとな。いつからだろう? ファイルを消しちゃったとかではないようだし、アクセス権も問題ないみたい・・・。しからばグーグル先生に聞いてみるしか。
なんと一発で! 同じような現象に遭って同じようにProf. Googleに聞いてみた人が見つかりました。なるへそ・・・。gdbmのデータベースのデフォルトが変わって旧バージョンと互換性がなくなっている、ってことでOK?
この問題にかかる本家のBugzillaスレッドはこちら。上の人はここから convert.c を入手して一連のコマンドを投入してこれをビルドして・・・とやったようですが、その後の話か、こちらの gdbm_convert.sh を実行すればその辺を一発でビルドして問題のあるファイルを探してうまいこと変換までしてくれるらしい。では、やってみます。
root になって上のスクリプトを wget して、chmod +x して実行。なにやらしばらくビルド作業らしきものが走った後「コレとコレを変換しました、バックアップと作業ファイルは消してもいいよ」みたいなメッセージが。成功だ。
・・・と思ったのですがダメでした。まず、作られた筈のバックアップファイルがありません。そして更新されるはずのファイルの日付が元のままです。書き換わってないみたいです。そして何より、メール送信に失敗しますし、そのときのエラーログが一緒です。
あれあれ・・・と思ってスクリプトの中身を見てみたところ、どうもこのスクリプト、変換ツールを実行する旨のメッセージと成功した旨のメッセージを出す処理はあるものの、肝心の変換ツールを実行してません(笑)。マジですかコレ。半信半疑で手で実行したらいけました。
ただ、スクリプトの実行結果によると、元ファイルに”.upgrade.tmp”をつけたものが、消してよいバックアップだと思われたのですが、実際はこちらが変換後の新しいデータベースファイルでした。だから元のファイルをどっかに退避して、新しくできたコレを元の名前にリネームします。
無事、メール送信に成功しました。めでたしめでたし。
コメントを残す