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