「湘南台の歩き方」コラム

http://www.suzume.com/~s_dai/

RedHat Linux9 のSUZUME.COM覚書
2004年03月01日


 いや、今回は参りました。先月23日からほぼ3日間もサーバーを止めてしまいました。これほどまで復旧に時間が掛かったのは、私の技術力の無さが原因ですが、Linuxの難しい側面も出てしまいました。つい先日まで使っていたのは、RedHatの6だったでしょうか。ずーっと、特に大きな問題も出さずに動いていました。その昔は、Sluckwareなども使ったことがありますが、サーバーがレンタルになって、自前のものを持ち込めなくなったので、サーバー会社が与えてくれるハードとOSを使うしかありませんでした。
 今回の問題は、OSだったのか、ハードウェアーだったのか、結局切り分けることができませんでしたが、現象はリセットもリブートもできなくなってしまいました。ハードディスクを他のマシンのスレーブとしてつなげたところ、幸いにしてデータ部分が見える状況だったらしいので、慌ててバックアップを取った次第です。
 さて、今回入れたOSがRedHat9.0です。もうそろそろRedHat社がサポートを止める製品です。このOSの変更が、その中に入っているアプリケーションの設定ファイルの違いによって、同じ設定ファイルを持ってきただけでは、簡単に移行ができませんでした。
 下記にその要点を記述しておきます。同じような境遇の方の参考になれば良いのですが。。。

■ DATAの復元 ■

cp -Rp /home/BACKUP/home/xxx /home/xxx
-R は以下のディレクトリーも総て
-p はファイル属性もそのままコピー

■ ユーザーの復元 ■

下記4つのファイルをCOPYする。

passwd
passwd-
group
group-

ユーザーのメールキューをCopyする

■ BIND ■

 デフォルトでは、BINDが自動起動に設定されていない。自動起動できるように設定する。
# ln -s /etc/rc.d/init.d/named /etc/rc.d/rc2.d/s45named

/var/named
にある zone ファイルの serial の数値を大きいものにする。こうしないと、読み込んでくれない。

■ Apache ■

 Apacheは2.0が採用されていたが、今まで使っていたのが1.3であったため、httpdの場所も、http.confも異なっていた。早く直すためにApache1.3を元にあったディレクトリーにCOPYして使った。その際、LOGも前の場所にCOPYして格納しておいた。

■ Sendmail ■

aliases を変更 元のをcopy して、 newaliases コマンドを掛ける
accessファイルを書き換えて、suzume.com を追加する
local-host-names を書き換えて、suzume.comを追加するその他のバーチャルドメインも追加する。

デフォルトのままでは、外部からメールを受け取ることができません。下記の変更が必要です。
1) smmspと言うユーザと、同じ名前のsmmspと言うGroupを作成する。
2) /var/spool/clientmqueue /etc/aliases.db と /etc/mail/access.db の owner / group を smmsp にする。
3) sendmail.mcをEDITして、

(現行)DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
(変更)dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl

(追加)define(`confCW_FILE', `-o /etc/mail/local-host-names')dnl
(追加)MASQUERADE_AS(`suzume.com')dnl
(追加)FEATURE(masquerade_envelope)dnl

m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
でsendmail.cf を作る

sendmail の再起動
# /etc/rc.d/init.d/sendmail restart

■ FML ■

FMLがsendmailを使うので、下記の対策が必要です。
usr/local/fml に site_init.phファイルを作成し下記を入れる。

push(@INC, "/usr/local/fml"); push(@LIBDIR,"/usr/local/fml/module"); push(@LIBDIR,"/usr/local/fml/module/CPAN"); push(@LIBDIR,"/usr/local/fml/module/Japanese"); push(@LIBDIR,"/usr/local/fml/module/fml-devel"); 1;

そして
/etc/smrsh

にシンボリックリンクを4つ作る。

# ln -s /usr/local/fml/fml.pl /etc/smrsh
# ln -s /usr/local/fml/default_config.ph /etc/smrsh
# ln -s /usr/local/fml/libloadconfig.pl /etc/smrsh
# ln _s /usr/local/fml/site_init.ph /etc/smrsh



過去のコラム