わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

サーバ交換メモ(1)

昨日までの2日間で,仕事場で使っているサーバを交換しました.記録を残しておきます.
前提として,2台のサーバは「旧サーバ」と「新サーバ」と呼び分けます.旧サーバはGentooで,もちろん交換前までフル活動です.新サーバはUbuntuで,アプリケーションをいくつかいれていますが,サーバに関しては,まっさら同然です.

todoとdiffを書き出す

作業をするにあたり,テキストファイルに,「何をするか」と「2つのサーバの違い」を書いておきます.
「何をするか」については,大まかには以下の通りです.実際には行単位で細かく書きます.

1件の作業を終えれば,先頭に「■」をつけます.全部が「■」になれば,作業完了です.
2つのサーバの違いというのは,作業する本人は分かっていますが,将来へのメモとして残しておきます.具体的には

を控えておきます.RubyGemsで入れたものは,「gem list」で確認です.

メール

旧サーバはcourier-imapで,~/.maildir にメールを置くようにしていましたが,新サーバではcyrus-imapd-2.2というのを入れてみました.http://hk-tech.homeip.net/pcserver/imap4.html を見ながら作業しました.
過去のメール本文の移転について,新サーバでアプリケーションを調査….

# apt-cache search cyrus | grep courier
cyrus2courier - converts Cyrus mailbox format to Maildir

欲しいのはその逆です.Googleに頼ると,http://www.samage.net/dev/ というのが見つかりました.3つダウンロードでき,パッチを当てればいいのかなと思ったら,3つともPerlスクリプトです.ちょっと迷って,3番目(Patched by Christian Kratzerのもの)をダウンロードし,パスやUID/GIDなどを書き換えて,「./maildir2cyrus-uid takehiko takehiko」を実行しました.
あ,その前に,rsync -avz -e sshで,旧サーバから新サーバへメールのファイルをコピーしておきます.
これで移行は完了,と思ってThunderbirdで接続を試みても,うまくいきません.新サーバの負荷が1になって一向に減らないので,強制終了*1
対策ですが,「cyradm -user Cyrus管理ユーザ localhost」で入り,「lm」を実行してMailboxの一覧を出してから,「reconstruct Mailbox名」で一つ一つ,移行したMailboxの再構築をすることで,うまくいきました.

*1:といってもkillではなく,/etc/init.d/cyrus2.2 stopで止まります.落ち着いたところで,/etc/init.d/cyrus2.2 startとします.