Virtual Server 2005 R2上にCentOS5.5をインストールして、PostfixとDovecotでメールサーバーを組みました。
が・・・・・Dovecotが頻繁に落ちるのです。
dovecot: pop3-login: Time just moved backwards by 5 seconds. I’ll sleep now until we’re back in present. http://wiki.dovecot.org/TimeMovedBackwards
dovecot: auth(default): Time just moved backwards by 4 seconds. I’ll sleep now until we’re back in present. http://wiki.dovecot.org/TimeMovedBackwards
dovecot: Time just moved backwards by 6 seconds. This might cause a lot of problems, so I’ll just kill myself now. http://wiki.dovecot.org/TimeMovedBackwards
こんなエラーメッセージが続きます。
意味は「時間が○秒戻ったので私(Dovecot)は停止します」って、勝手に死ぬなよー
Virtual Server上に入れたCentOSはクロックの割り込みがうまく行かず、時間がすぐに大幅に狂ってしまいます。
そこでNTPサービスをインストールしましたが、時間が狂いすぎるのか同期できず、仕方なしにバッチで強制的に合わせていました。
# vi /etc/crontab
—
*/10 * * * * root ntpdate 219.164.211.137 > /dev/null 2>&1
—
しかし、エラーメッセージにある「http://wiki.dovecot.org/TimeMovedBackwards」を見てみると、このntpdateコマンドがいけないようですね。
急な同期がダメなのは次のホームページが参考になります。
http://www.ys-network.info/?p=996
このページに死んだDovecotを監視するバッチがあったのでセットします。
# vi /root/dovecot_check_restart.sh
—
#!/bin/sh
HOST=’localhost’
#PORT=110
PORT=143
#HP=@$HOST:$PORT
HP=:$PORT
echo ‘Checking to see if Dovecot is up…’
if ( lsof -Pni $HP -s TCP:LISTEN 2>&1 >/dev/null ); then
echo ‘Dovecot is up’;
else
echo ‘Dovecot is down, restarting…’;
/etc/init.d/dovecot restart
logger -p mail.info dovecot_check_restart.sh restarting Dovecot
fi
—
# chmod 700 dovecot_check_restart.sh
# vi /etc/crontab
—
* * * * * root /root/dovecot_check_restart.sh 2>&1 > /dev/null
—
# service crond restart
これで自動復帰するようになったDovecotですが、実際に接続して使用するとやはり途中で切断されることがしばしば・・・・
さらに調べていると「Virtual Machine Additions For Linux 2.0」で親ホストと同期するのがいいみたい
ということで
参考サイト
http://tnt-blog.at.webry.info/200801/article_3.html
http://www.microsoft.com/downloadS/details.aspx?FamilyID=bf12642f-77dc-4d45-ae4e-e1b05e0a2674&displaylang=en
まずはダウンロードした「VMAdditionsForLinux_32Bit.msi」を親ホスト(Windows Server 2003 R2)にインストールします。
インストールしたフォルダ内のISOファイル(C:\Program Files\Microsoft Virtual Server\Virtual MachineAdditions\VMAdditionsForLinux.iso)をCentOS5.5のCD-ROMにマウントします。
ここからは内部コマンドです。
# mount /dev/cdrom
mount: /etc/fstab や /etc/mtab 内に /dev/hdc を見つけられません
このコマンドだとエラーになりました。
# mkdir /mnt/cdrom
# mount /dev/cdrom /mnt/cdrom/
mount: ブロックデバイス /dev/cdrom は書き込み禁止です、読込み専用でマウントします
CDROM領域を作成してマウントすると読込み専用でマウントされました。
# cd /mnt/cdrom/
[root@fsmail cdrom]# ls
install.sh vmadd-kernel-module-RHEL-2.0-1.i386.rpm
vmadd-full-2.0-1.i386.rpm vmadd-scsi-2.0-1.i386.rpm
vmadd-full-RHEL-2.0-1.i386.rpm vmadd-shutdown-2.0-1.i386.rpm
vmadd-heartbeat-2.0-1.i386.rpm vmadd-timesync-2.0-1.i386.rpm
vmadd-kernel-module-2.0-1.i386.rpm vmadd-x11-2.0-1.i386.rpm
多くのRPMパッケージが入っていますね。
[root@fsmail cdrom]# ./install.sh
シェルがあったので実行してみましたが・・・・何も起きませんでした。
そこで1つずつインストール。依存関係のあったkernel-devel をUPDATE
# yum install kernel-devel
kernel-devel i686 2.6.18-194.11.1.el5 updates 5.4 M
次の順で4つのRPMパッケージをインストールしました。
# rpm -ivh vmadd-kernel-module-RHEL-2.0-1.i386.rpm
# rpm -ivh vmadd-heartbeat-2.0-1.i386.rpm
# rpm -ivh vmadd-shutdown-2.0-1.i386.rpm
# rpm -ivh vmadd-timesync-2.0-1.i386.rpm
残念…..CentOS5.5には入らないようです。
これが入ればそのまま使用と思いましたが、諦めます・・・