NTP とは Network Time Protocol のことで、ネットワーク経由で計算機の 時刻合わせを行うプロトコルです。
UNIX での NTP ツール
UNIX で NTP を用いるには、一般には xntpd を使用します。ただし、NTP サーバを 標準装備している UNIX もありますので、全ての UNIX で xntpd のインストールが 必要というわけではありません。
NTP サーバを標準装備している UNIX としては、以下のようなものがあります。
- FreeBSD 2.2.x 以降
- NEWS-OS 4.x 6.x
- Solaris 2.6 以降
- AIX 4.1
xntpd のインストール
ftp://ftp.st.ryukoku.ac.jp/pub/network/ntp/ からソースファイルを入手します。今回は、xntp3-5.93-export.tar.gz を入手しました。
ソースファイルを入手したら、適当なディレクトリで展開し、利用する OS の環境に 合わせるために configure スクリプトを実行します。その後は、make , make install で OK です。xntpd は /usr/local/bin にインストールされます。また、xntpd の マニュアルが ./html 以下にあるので、必要に応じてインストールします。 具体的な手順を以下に示します。% tar xvfz xntp3-5.93-export.tar.gz % cd xntp3-5.93-export % ./configure % make % su Password: # make install
/etc/ntp.conf の設定
NTP の設定ですが、電気・情報工学科の方で GPS を用いた NTP サーバが動作 しているので、研究室内の 1 台のマシンを研究室代表の NTP サーバとし、 電気・情報工学科の NTP サーバの時刻を参照するようにします。 また、研究室内の残りの計算機は、その研究室代表の NTP サーバの時刻を参照 するよう設定します。
- 研究室代表 NTP サーバの設定
/etc/ntp.conf にserver 電気・情報工学科の NTP サーバのホスト名または IPアドレス driftfile /etc/ntp.drift- 研究室内 NTP クライアントの設定
/etc/ntp.conf にserver 研究室代表 NTP サーバのホスト名または IPアドレス driftfile /etc/ntp.driftFreeBSD 2.2.2-Release 以降における設定
FreeBSD 2.2.2-Release 以降では xntpd は標準装備してあるので、改めて インストールする必要はありません。設定方法は、/etc/rc.conf ファイルに### Network Time Services options: ### timed_enable="NO" # Run the time daemon (or NO). timed_flags="" # Flags to timed (if enabled). ntpdate_enable="NO" # Run the ntpdate to sync time (or NO). ntpdate_program="" # path to ntpdate, if you want a different one. ntpdate_flags="" # Flags to ntpdate (if enabled) xntpd_enable="NO" # Run xntpd Network Time Protocol (or NO). xntpd_program="" # path to xntpd, if you want a different one. xntpd_flags="" # Flags to xntpd (if enabled). tickadj_enable="NO" # Run tickadj (or NO). tickadj_flags="-Aq" # Flags to tickadj (if enabled).という部分がありますので、
- 研究室代表 NTP サーバでは
### Network Time Services options: ### timed_enable="NO" # Run the time daemon (or NO). timed_flags="" # Flags to timed (if enabled). ntpdate_enable="YES" # Run the ntpdate to sync time (or NO). ntpdate_program="ntpdate" # path to ntpdate, if you want a different one. ntpdate_flags="-s -b 電気・情報工学科NTPサーバのホスト名またはIPアドレス" # Flags to ntpdate (if enabled) xntpd_enable="YES" # Run xntpd Network Time Protocol (or NO). xntpd_program="xntpd" # path to xntpd, if you want a different one. xntpd_flags="" # Flags to xntpd (if enabled). tickadj_enable="YES" # Run tickadj (or NO). tickadj_flags="-Aq" # Flags to tickadj (if enabled).- 研究室内 NTP クライアントでは
### Network Time Services options: ### timed_enable="NO" # Run the time daemon (or NO). timed_flags="" # Flags to timed (if enabled). ntpdate_enable="YES" # Run the ntpdate to sync time (or NO). ntpdate_program="ntpdate" # path to ntpdate, if you want a different one. ntpdate_flags="-s -b 研究室代表NTPサーバのホスト名またはIPアドレス" # Flags to ntpdate (if enabled) xntpd_enable="YES" # Run xntpd Network Time Protocol (or NO). xntpd_program="xntpd" # path to xntpd, if you want a different one. xntpd_flags="" # Flags to xntpd (if enabled). tickadj_enable="YES" # Run tickadj (or NO). tickadj_flags="-Aq" # Flags to tickadj (if enabled).と変更します。Solaris 2.0 〜 2.5.1 における設定
Solaris 2.0 〜 2.5.1 には xntpd が付属しませんので、xntpd をインストール しておきます。設定方法は、/etc/init.d/xntp ファイルにと記述し、サーバもクライアントも
- 研究室代表 NTP サーバでは
#!/bin/sh killproc() { # kill named processes pid=`/usr/bin/ps -e | /usr/bin/grep $1 | /usr/bin/sed -e 's/^ *//' -e 's/ .*//'` [ "$pid" != "" ] && kill $pid } case "$1" in 'start') ps -e | grep xntpd > /dev/null 2>&1 if [ $? -eq 0 ] then echo "ntp daemon already running. ntp start aborted" exit 0 fi if [ -f /etc/ntp.conf -a -x /usr/local/bin/xntpd ] then /usr/local/bin/ntpdate -s -b 電気・情報工学科NTPサーバのホスト名またはIPアドレス /usr/local/bin/xntpd echo "xntp is running." fi ;; 'stop') killproc xntpd ;; *) echo "Usage: /etc/init.d/xntp { start | stop }" ;; esac- 研究室内 NTP クライアントでは
#!/bin/sh killproc() { # kill named processes pid=`/usr/bin/ps -e | /usr/bin/grep $1 | /usr/bin/sed -e 's/^ *//' -e 's/ .*//'` [ "$pid" != "" ] && kill $pid } case "$1" in 'start') ps -e | grep xntpd > /dev/null 2>&1 if [ $? -eq 0 ] then echo "ntp daemon already running. ntp start aborted" exit 0 fi if [ -f /etc/ntp.conf -a -x /usr/local/bin/xntpd ] then /usr/local/bin/ntpdate -s -b 研究室代表NTPサーバのホスト名またはIPアドレス /usr/local/bin/xntpd echo "xntp is running." fi ;; 'stop') killproc xntpd ;; *) echo "Usage: /etc/init.d/xntp { start | stop }" ;; esac# chmod 755 /etc/init.d/xntpで実行可能にしておきます。次に、システムの起動時に xntpd が起動するように、 以下のようにして /etc/rc2.d/S99xntpの設定をします。# ln -s /etc/init.d/xntp /etc/rc2.d/S99xntpまた、/etc/system の最後の行にset dosynctodr = 0を追加します。Solaris 2.x では tickadj は不要です。この機能は /etc/system で設定しています。SunOS 4.1.x における設定
SunOS 4.1.x には xntpd が付属しませんので、xntpd をインストールしておきます。 設定方法は、/etc/rc.local ファイルにと記述します。
- 研究室代表 NTP サーバでは
# # Start NTP service - Network Time Protocol # if [ -f /usr/local/bin/xntpd -a -f /etc/ntp.conf ]; then echo -n "Starting NTP service: " /usr/local/bin/tickadj -Asq /usr/local/bin/ntpdate -s -b 電気・情報工学科NTPサーバのホスト名またはIPアドレス /usr/local/bin/xntpd echo "xntpd." else echo "xntpd not found" fi- 研究室内 NTP クライアントでは
# # Start NTP service - Network Time Protocol # if [ -f /usr/local/bin/xntpd -a -f /etc/ntp.conf ]; then echo -n "Starting NTP service: " /usr/local/bin/tickadj -Asq /usr/local/bin/ntpdate -s -b 研究室代表NTPサーバのホスト名またはIPアドレス /usr/local/bin/xntpd echo "xntpd." else echo "xntpd not found" fiLinux 2.0.3x における設定
Linux には xntpd が付属しませんので、xntpd をインストールしておきます。 設定方法は、/etc/rc.local ファイルにと記述します。
- 研究室代表 NTP サーバでは
# # Start NTP service - Network Time Protocol # if [ -f /usr/local/bin/xntpd -a -f /etc/ntp.conf ]; then echo -n "Starting NTP service: " /usr/local/bin/tickadj -Asq /usr/local/bin/ntpdate -s -b 電気・情報工学科NTPサーバのホスト名またはIPアドレス /usr/local/bin/xntpd echo "xntpd." else echo "xntpd not found" fi- 研究室内 NTP クライアントでは
# # Start NTP service - Network Time Protocol # if [ -f /usr/local/bin/xntpd -a -f /etc/ntp.conf ]; then echo -n "Starting NTP service: " /usr/local/bin/tickadj -Asq /usr/local/bin/ntpdate -s -b 研究室代表NTPサーバのホスト名またはIPアドレス /usr/local/bin/xntpd echo "xntpd." else echo "xntpd not found" fi