メールサーバーの移行
投稿日時:2011/05/18
新規にサーバーを立てることになったので
CentOS 5.6 をインストール
以前まで使っていた Fedora 10 のサーバーから
メールのデータを以降してたけど少し手間取ったので
今回の手順を今後の参考になるよう覚書
・メールのバックアップ
両サーバーとも postfix を使用しているのと
conf ファイルは同じ設定なのでデータの移動だけで済みます
注意するのは日付だけです
圧縮かければ保持されるのであまり気にする必要はないかも
tar -czf home.tar.gz /home |
で /home 以下を丸ごと圧縮
結構、時間かかります
圧縮かけている間、手持ち無沙汰になるので
新サーバーでユーザーを追加しておきます
useradd で追加する順番は旧サーバーと一致させます
でないとIDとディレクトリがズレます
圧縮できたら FTP なり外付け HDD なりで移動して解凍
解凍する場所は注意
とりあえずはここに入れておきます
/usr/local/src
tar -xzf home.tar.gz |
あとは入れ替え
mv /home /home_ mv /usr/local/src/home /home |
dovecot.index* のキャッシュが破損していたのでシェルから一括で削除
vi delindex.sh |
#!/bin/bash INDEXLIST=`find /home -name dovecot.index*` for index in $INDEXLIST; do rm -f "${index}" done |
chmod 700 delindex.sh ./delindex.sh |
IMAP の場合、最初の接続時にキャッシュを作成し直すので容量によって時間がかかります
・spamassassin の対応
サーバー上でスパムメールをはじく機能を入れているのですが
メールログを見ると下記のようなエラーが発生
bayes: cannot open bayes databases /home/xxxxxx/.spamassassin/bayes_* R/O: tie failed: auto-whitelist: open of auto-whitelist file failed: auto-whitelist: cannot open auto_whitelist_path /home/xxxxxx/.spamassassin/auto-whitelist: |
キャッシュと同様にコピーの影響でリストが破損したようです
シェルから一括で削除
vi delspam.sh |
#!/bin/bash USERLIST=`ls /home/` for user in $USERLIST; do rm -f /home/"${user}"/.spamassassin/* done |
chmod 700 delspam.sh ./delspam.sh |
これでメールの移行が終了です
続いてメーリングリストです
・mailman の移行
http://centossrv.com/postfix-mailman.shtml
mailman は少し手間取りました
旧サーバーの mailman は
/etc/mailman/*
/var/lib/mailman/*
新サーバーは
/usr/local/mailman/*
にデータが置かれています
これは OS が異なるのが原因でした
/etc/mailman/* -> /usr/local/mailman/data
/usr/local/mailman/* -> /usr/local/mailman/*
が対応した場所になります
移動の仕方はここら辺を参考
http://se-suganuma.blogspot.com/2009/08/linuxmailmanpostfix.html
http://slashdot.jp/~Max/journal/123724
http://www.sleepingbird.net/Linux/2003/04/post_34.html
やったことは
パスワードの設定
/usr/local/mailman/bin/mmsitepass パスワード |
エイリアスの作成
/usr/local/mailman/bin/genaliases chown mailman. /usr/local/mailman/data/aliases* chmod g+w /usr/local/mailman/data/aliases* |
シンボリックリンクの貼り直し
/usr/local/mailman/archives/public/*
以下のシンボリックリンクを
/usr/local/mailman/archives/private/*
に対応
/etc/httpd/conf.d/mailman.conf
にある archives のパスを変更
これで再起動してみるとうまく動かない
ログを見てみると
/usr/local/mailman/logs/
Uncaught runner exception: 'str' object has no attribute 'partition' Traceback (most recent call last): File "/usr/local/mailman/Mailman/Queue/Runner.py", line 120, in _oneloop self._onefile(msg, msgdata) File "/usr/local/mailman/Mailman/Queue/Runner.py", line 191, in _onefile keepqueued = self._dispose(mlist, msg, msgdata) File "/usr/local/mailman/Mailman/Queue/OutgoingRunner.py", line 74, in _dispose |
こんな感じのログがでてました
原因を調べてみるとどうも導入した mailman のバージョンを動かすには
Python 2.5 以上が必要のようです CentOS 5.6 にインストールされていた
Python のバージョンは 2.4.3 でした
しかたないので 2.6.6 に変更
wget http://www.python.org/download/releases/2.6.6/ tar zxvf Python-2.6.6.tgz cd Python-2.6.6 |
./configure --prefix=/usr/local/Python-2.6.6 --with-zlib make make install |
これでインストールして
Python -V |
でバージョンの確認
念のため mailman を再度インストール
これで正常な動作の確認が取れました
以下、参考サイト
http://www.h3.dion.ne.jp/~xosada/unix/22_tar/index.html
http://wota.jp/ac/?date=20061025
http://centossrv.com/postfix-mailman.shtml
http://se-suganuma.blogspot.com/2009/08/linuxmailmanpostfix.html
http://slashdot.jp/~Max/journal/123724
http://www.sleepingbird.net/Linux/2003/04/post_34.html
http://www.postfix-jp.info/ML/arc-2.3/msg00324.html
http://d.hatena.ne.jp/paraches/20100928
http://www.c.csce.kyushu-u.ac.jp/kb/wiki/index.php?%A5%BD%A5%D5%A5%C8%A5%A6%A5%A8%A5%A2%2FM5_1.1%2F%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB
以下、関連書籍
20141230追記---
久しぶりに移行をやったときに躓いたので補足
/usr/local/mailman/lists/
下にメーリングリストをコピーしておく事
/usr/local/mailmain/bin/check_perms -f
で整合性を取ってくれるので問題なしになるまで何度も実行する事
久しぶりに移行をやったときに躓いたので補足
/usr/local/mailman/lists/
下にメーリングリストをコピーしておく事
/usr/local/mailmain/bin/check_perms -f
で整合性を取ってくれるので問題なしになるまで何度も実行する事
- 関連記事
-
- URL短縮サービス
- rm コマンド実行後のファイル復元
- メールサーバーの移行
- FTP サーバーの設定
- logcheckインストール方法