VMwareでLinuxの時間がずれるのをなんとかする(時刻同期)
まずはここを参考にLinuxのゲストOSで時計の進むスピードが狂うのをなんとかしときます。
さらにゲストOSをサスペンドしているとOS上の時計もサスペンドされるので、どんどんゲストOSの時計が狂ってきます。そういうときはntpとcronを使って時刻同期をします。
最初はntpdのサービスを起動して時刻同期しようと思いましたが、全く時刻同期してくれないので、cronでntpdateを実行することにしました。
(2008/08/05追記 NTPサーバのポートが開いてないのが原因でした)
crontabに次のように設定します。環境はCentOS
$ vi /etc/crontab
*/3 * * * * root ntpdate 192.168.0.19
これは3分ごとにLAN内のNTPサーバと時刻同期をします。
外部のNTPサーバに短い間隔で問い合わせを行うと迷惑になるのでLAN内にNTPサーバを構築しましょう。ここを参考に。
あとntpdが起動しているとntpdateできないので止めときましょう。
$ /etc/rc.d/init.d/ntpd stop
$ chkconfig ntpd off
<2009/01/19 追記>
VMware Toolsをインストールしても時刻同期してくれる。インストールの仕方はこの記事を参照。コメントで指摘があったので追記。
<2009/08/24 追記>
メールサーバーの設定をやっていて気付いた。cronが動くたびにrootにメール送信されるとうざい。ここでも書いたけど/etc/crontabを編集して
MAILTO=””
にする。
<2009/09/01 追記>
crontabに直接書くのはスマートでないので、/etc/cron.d/ディレクトリに次のような設定ファイルを作成して対応する。
# vi /etc/cron.d/ntp
#
# cron-jobs for ntp
#MAILTO=""
*/3 * * * * root /usr/sbin/ntpdate 192.168.0.19