ntpd
NTPとはNetwork Time Protocolの略です。
コンピュータ機器は使用しているとだんだん時間がずれてきます。
パソコンで日付をあわせるのはDateコマンドであわせますが、サーバーなどあまり頻繁にメンテナンスできないコンピュータの日付を自動であわせるのがこのNTPです。
しくみはタイムサーバーと呼ばれる時計の役目をするサーバーにアクセスし、同期を取ることで自動で時間をあわせます。
ソースのダウンロード
http://www.ntp.org/ からダウンロードします。
今回はntp-4.2.0.tar.gzを使用します。
インストール
tar xvfz ntp-4.2.0.tar.gz
cd ntp-4.2.0
./configure
make
make install
/etc/ntp.confの作成
公開されているNTPサーバーをいくつか選びリンクをはります。
無難に日本の大学などのNTPサーバーを選ぶとよいでしょう。
またアメリカなどの外国のサーバーはリンクタイムが日本のサーバーよりかかるため、セッションが張られませんのであまりお勧めしません。
日本のNTPサーバー
東京大学 「ntp.nc.u-tokyo.ac.jp」
東北大学 「ntp.tohoku.ac.jp」
記述例を以下に記します。
server ntp.nc.u-tokyo.ac.jp
server ntp.tohoku.ac.jp
driftfile /etc/ntp.drift
ドリフトファイルの作成
touch /etc/ntp.drift
これでOKだそうです。
ntpdファイルの作成
ntpのデーモンを立ち上げるためのソースを/etc/rc.d/init.d/ntpdに作成します。
ntpdの記述は長いのでソースを用意します。
#
# Startup script for ntp-daemon
#
# chkconfig: - 58 74
# description: ntpd
# processname: net work time protocol
#
. /etc/rc.d/init.d/functions
#
# Start/stop processes required for ntpd
#
case "$1" in
start)
echo -n "Starting ntpd: "
/usr/local/bin/ntpd -c /etc/ntp.conf
echo
;;
restart)
$0 stop
sleep 1s
$0 start
;;
stop)
echo -n "Shutting down ntpd: "
killproc ntpd
echo
;;
*)
echo "Usage: $0 {start|restart|stop}"
exit 1
esac
exit 0
日付と時間が正しいかを確認する
NTPはそもそも時間のわずかなズレを補正するためのツールです。
そのため、日にちそのものが現在日付と異なっていたり、何時間も時間がずれていると動作せずにセッションが勝手に切断されてしまいます。
その為、デーモンを起動する前に日付を確認しましょう。
date
2004年 9月 10日 木曜日 16:21:03 JST
例えば、今日は2004年9月16日 木曜日 16:21:03 JSTであるとすると6日もずれているためセッションは切断され、デーモンも勝手に終了してしまいます。
日付をあわせます。
date 091616212004
2004年 9月 16日 木曜日 16:21:00 JST
再度dateコマンドで確認する。
date
2004年 9月 16日 木曜日 16:21:12 JST
これで日付の補正は完了です。 次にデーモンを起動してみましょう。
デーモンの登録・起動
chkconfig にデーモンを登録しておくことで service コマンドで起動の管理を行うことができます。
chkconfig --add ntpd
OS起動時に起動する設定
chkconfig ntpd on
起動開始
service ntpd start
下記コマンドを入力すると、セッションが張られているかどうか確認ができます。
セッションが張られていれば下記のように表示されます。
# ntpq -p
remote refid st t when poll reach delay offset jitter
==========================================================
+ntp.nc.... .GPS. 1 u 19 64 377 3.082 0.165 0.152
*zao.ne.... .GPS. 1 u 22 64 377 10.284 -0.056 0.390
正しくセッションが張られているとサーバーの名前のところに*がつきます。
デーモンを起動してすぐには反映されません。20分くらいかかります。
|