ウチは後悔^h^h公開サーバが2台あって、一応、「仕事用(メイン)」と「趣味用(サブ)」に分けてあります。
んで、複数持ってるドメインも、サーバの役割にあわせて割り振ってた。

・・・・・ハズですた。

いろいろやっているウチに、例えば このkvs.jpドメインだと
  • プライマリDNSはサブサーバ
  • Webもサブサーバ
  • メールボックスはメインサーバ
  • さらに友達に作ってあげたkvs.jpのサブドメインもメインサーバ

なんて言うことになっていた(;´ω`)
あとで面倒なことになりそうなので、とりあえずkvs.jpのメールボックスをサブサーバに移動した。


さて、まずは前置き

  • メインサーバ・サブサーバとも「qmail+vpopmail+MySQL+qmailadmin」で構築されている
  • メイン・サブともに複数ドメインのメールボックスを管理している
  • qmailは/var/qmail/control以下のファイル群で動作設定されている
  • メールボックスは全てvpopmail名義で管理される
  • メールボックスへの配送ルールは「~vpopmail/domains/(ドメイン名)/.qmail-*」で設定されている
  • メールアカウントはvpopmailがMySQLのDBを使って管理している

こんなとこかな。
要するに、「~vpopmail/domains/kvs.jp」をそっくりコピーすればメールはちゃんと配送される。
(/var/qmail/control/virtualdomainsの設定も必要)
メールボックスからメールを読み出す(POP3)側についてはMySQLのレコードをコピーすればOKっぽい。
ということですな。

大まかな手順

  1. サブサーバのvpopmailにkvs.jpドメインを認識させる
  2. メインサーバのkvs.jpドメインのメールボックスをサブサーバにコピーする
  3. メインサーバのMySQLからkvs.jpドメインのメールアカウント情報を引っこ抜いてサブサーバに放り込む
  4. 同じくエイリアス(転送メール)の情報も引っこ抜いてサブに放り込む
  5. DNS情報を変更
  6. この作業をしている間に届いたメールがあるかもしれないので、もう一度メインサーバにあるkvs.jpドメインのメールボックスをサブサーバにコピーする
  7. メインサーバのvpopmailにkvs.jpドメインを破棄させる
    これをやらないとメインサーバにある他のドメインからkvs.jpにメールをだしたときに内部配送されてしまう。

ん~と・・・これであってるんだろうか?(;´Д`)
マネしてメールが行方不明になっても責任は持ちませんorz

んで、実際の手順。

まずは先に引っ越し先にドメインを認識させます。

[sub]# cd ~vpopmail/bin
[sub]# ./vadddomain kvs.jp


そして、メインサーバにあるkvs.jpドメインのメールボックスをtarで固めて

[main]# cd ~vpopmail/domains
[main]# tar -c ./kvs.jp -f kvs.jp.tar


これを、FTPなりscpなりでサブサーバに送り込む。
そして、サブサーバで「~vpopmail/domains/」以下に上書き(最初の手順で「~vpopmail/domains/kvs.jp」は出来ているため)展開してしまう。
これでとりあえずメールボックスは出来た。

今度は、メインサーバのMySQLからメールアカウント情報を引っこ抜く。
phpMyAdminなりWebminなりを使って、DB名「vpopmail」のテーブル「vpopmail」から、フィールド「pw_domain」が「kvs.jp」となっているレコードを全てエクスポートでファイルに落とす。
同じく、テーブル「valias」からフィールド「domain」が「kvs.jp」となっているレコードもエクスポートでファイルに落とす。

この二つをサブサーバの同じテーブルにインポートすればOK。

DNSで、kvs.jp宛メールはメインサーバに配送するように指定してあったのをサブサーバに設定しなおし。
serialをアップデートするのを忘れずに(;´ω`)
DNSサーバ(named)を再起動。

念のため、もう一度、メインサーバに残っているkvs.jpドメインのメールボックスをサブサーバにコピーしておく。
考えてみれば、本来なら作業中はqmailとvpopmailを止めておくべきなのかもしれない(;´ω`)

最後にメインサーバのvpopmailからkvs.jpの情報を削除

[main]# cd ~vpopmail/bin
[main]# ./vdeldomain kvs.jp


最初コレを忘れてて、メインサーバからkvs.jpドメイン宛にテストメール送ってもサブサーバに配送されなくて悩みまくった(;´Д`)
さて、これで終了。

注意:これは おいらが「これでいいんじゃね?」って思いつきでやってうまくいっただけなので、マネをしてメールボックスごと無くなっても責任は持ちませんorz



関連しそうなentry