05.時計を合わそう
サーバーなので時計は正確にしておいた方がいいですね。 時計を正確にするには、ntpサーバーから正しい時間を取得するようにすればいいです。 そんなに大きく時間が狂うものではないので、1日に1回くらいntpサーバーと同期するように設定しました。
ntpサーバーと同期を取るためのコマンドは “ntpdate” です。 最初にDebianをインストールした状態では、入っていないので、aptを使って 取得しましょう。まずは
# apt-get update
で情報を更新して、次に
# apt-get install ntpdate パッケージリストを読みこんでいます... 完了 依存関係ツリーを作成しています... 完了 提案パッケージ: ntp 以下のパッケージが新たにインストールされます: ntpdate アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。 41.6kB のアーカイブを取得する必要があります。 展開後に追加で 164kB のディスク容量が消費されます。 取得:1 ftp://ftp.jp.debian.org stable/main ntpdate 1:4.2.0a+stable-2sarge1 [41.6kB] 41.6kB を 1s で取得しました (24.2kB/s) 未選択パッケージ ntpdate を選択しています。 (データベースを読み込んでいます... 現在 100073 個のファイルとディレクトリがインストールされています。) (.../ntpdate_1%3a4.2.0a+stable-2sarge1_i386.deb から) ntpdate を展開しています... ntpdate (4.2.0a+stable-2sarge1) を設定しています ... Running ntpdate to synchronize clock.
でインストール完了。Debianってこの作業が簡単なので、ものすごく助かります。 この作業が楽なので、Fedoraの時のようにインストール時に全部のパッケージを インストールしておくといったこともDebianではしていません。
まずは、動作確認のためにターミナル上から実行してみます。 一旦、現在時刻を確認してから
# date 2006年 6月 17日 土曜日 09:50:37 JST
おもむろに ntpdate コマンドを実行します。ntpdateの後には, お近くの ntpサーバーを指定しましょう。
# ntpdate ntp1.plala.or.jp 17 Jun 09:50:50 ntpdate[3413]: adjust time server 219.164.211.129 offset 0.000552 sec
0.000552 秒の調整をしたようです。 調整後の現在時刻の確認。って、こんな微調整では本当に合わせたのかわかりませんが、、、
# date 2006年 6月 17日 土曜日 09:50:56 JST
さて、ntpdateコマンドが動作することを確認したら、あとは、 定期的にこのコマンドを実行して、自動的に時計を合わすように設定します。 通常は、1日1回も時刻あわせすれば、十分でしょう。
・「通常は」と但し書きした理由
以前、無料になったVMware Playerを使用して、 WindowsXP上のVMwareにGuestOSとしてLinuxを インストールして使用していました。 しかし、時計がものすごく遅れるという現象が発生して 頻繁に ntpdate で時計あわせをする必要がありました。 確か、10分に1回あわせていたと思います。 その後、検索してみると、以下が原因とのことですが、
・ホスト側のCPUのクロックが変わった事が,ゲスト側に通知されないことが原因. ・つまり,VMwareのACPIの実装のバグである.
このような状況では、1日1回の時計あわせでは、とてもだめで。 確か、10分に1回の間隔で時計あわせをしていました。
1日に一回、定期的に実行するためには、実行する内容を記載したシェルスクリプトを
/etc/cron.daily
以下に作成すればOKです。 ファイル名を ntpdate.sh として以下のシェルスクリプトを作成しました。
# cd /etc/cron.daily # vi ntpdate.sh ------------------------------------- #!/bin/sh /usr/sbin/ntpdate -b ntp1.plala.or.jp ------------------------------------- # chmod 755 ntpdate.sh
最後に、実行権を与えるのを忘れないようにしましょう。尚、スクリプト中の ntpdate の -b オプションは、man によると以下とのことです。
-b Force the time to be stepped using the settimeofday() system call,
rather than slewed (default) using the adjtime() system call. This option should be used when called from a startup file at boot time.
詳しいことはわからないのですが、とりあえず付けてみた状態です。 それから、使用するNTPサーバーについては以下を参照してみてください。
http://sonic64.com/2004-12-02.html
このサーバーでは、ネットワーク的に近いプロバイダのntpサーバーを 指定しています。