[[PageOutline]] = ntpdate = * ntpdateの引数に「-b」があると、ずれの大きさに寄らず「stepモード」として即座に時刻を合わせる。 * see also http://itpro.nikkeibp.co.jp/article/COLUMN/20070418/268713/ = ntpd = * [http://www.aconus.com/~oyaji/ntp/ntp.htm NTPDの設定] * [http://www.ipa.go.jp/security/awareness/administrator/secure-web/chap4/4_ntpd.html 4.2.3 ntpdのインストールと設定] * /etc/ntp.conf == refer local clock == * [http://turbolinux.livedoor.com/support/document/knowledge/545.html ローカルタイムを参照先とするNTPサーバーの構築] server に 127.127.1.0 を指定すると、NTPサーバが時間を合わせる基準として 自分自身のローカルクロック(システム時刻)を使用します。 127.127.1.0は、時間を取得するデバイスを指定するためのNTP独自の表現で 127.127.1.0を指定するとシステム時刻から時間を取得するようになります。 IPアドレスと同じ形式のため紛らわしいですが、このままの数字を記入して下さい。 * ntp.conf {{{ server 127.127.1.0 }}} * ntpq -p {{{ remote refid st t when poll reach delay offset jitter LOCAL(0) .LOCL. 5 l - 64 0 0.000 0.000 0.001 }}} * fudge文で、stratumを詐称(?)出来る模様。(CentOS:/usr/share/doc/ntp-*にドキュメントがある模様(未読)) * ntp.conf {{{ server 127.127.1.0 fudge 127.127.1.0 stratum 10 }}} {{{ remote refid st t when poll reach delay offset jitter LOCAL(0) .LOCL. 10 l 15 64 1 0.000 0.000 0.001 }}} == hardware clockのsyncについて == === CentOS 5 === ==== 起動時 ==== * /etc/sysconfig/ntpd {{{ # Set to 'yes' to sync hw clock after successful ntpdate SYNC_HWCLOCK=yes }}} * /etc/ntp/step-tickers * このファイルにホストが羅列されている場合、ntpd起動前にntpdateでupdateする * /etc/init.d/ntpd * boot時に実行されるスクリプトでは、以下のような流れになっている {{{ echo -n $"$prog: Synchronizing with time server: " /usr/sbin/ntpdate $dropstr -s -b $NTPDATE_OPTIONS $tickers &>/dev/null }}} {{{ [ "$SYNC_HWCLOCK" = "yes" ] && sync_hwclock }}} * sync_hwclock() は以下のようになっている {{{ action $"Syncing hardware clock to system time" /sbin/hwclock $CLOCKFLAGS }}} * $CLOCKFLAGSは「--systohc」の他、環境に合わせてUTCなどを指定する引数がセットされている。 ===== ログ ===== * 以下のようなログが画面に表示される {{{ ntpd: Synchronizing with time server: [ OK ] Syncing hardware clock to system time [ OK ] Starting ntpd: [ OK ] }}} * attachment:CentOS5-boot.png ==== 終了時 ==== * shutdown/rebootともに、以下のスクリプトで同期 * /etc/init.d/halt {{{ [ -x /sbin/hwclock ] && action $"Syncing hardware clock to system time" /sbin/hwclock $CLOCKFLAGS }}} * $CLOCKFLAGSは「/etc/init.d/ntpd」と同じく、「--systohc」の他、環境に合わせてUTCなどを指定する引数がセットされている。 * attachment:CentOS5-reboot.png === Ubuntu === ==== 起動時 ==== * 以下の二つのスクリプトがまず呼ばれる * /etc/rcS.d/S08hwclockfirst.sh * /etc/rcS.d/S11hwclock.sh * 中身は以下を除いてほぼ同一 {{{ FIRST=yes # debian/rules sets this to 'yes' when creating hwclockfirst.sh }}} * boot時は、以下のコマンドにより「H/W clockからSystem clockへ」時刻がコピーされる {{{ if /sbin/hwclock --hctosys $GMT $HWCLOCKPARS $BADYEAR $NOADJ; then }}} * その後、「/etc/rcS.d/S40networking」ででeth0などが起動されるが、この際以下のスクリプトが実行される。 * /etc/network/if-up.d/ntpdate {{{ invoke-rc.d --quiet ntp stop || true /usr/sbin/ntpdate-debian -s $OPTS 2>/dev/null invoke-rc.d --quiet ntp start || true }}} * このため、rcSののちにランレベル毎のスクリプトである「/etc/rc3.d/S23ntp」とは別にntpdがstart stopされる。このスクリプトはntpdパッケージとは別になっている。 {{{ $ dpkg -S /etc/network/if-up.d/ntpdate ntpdate: /etc/network/if-up.d/ntpdate }}} * また、「/etc/rc3.d/S23ntp」ではntpdが起動される以上のことは行われない ===== ログ ===== * 以下のようなログが画面に表示される {{{ * Setting the system clock ... * Configuring network interfaces... * Stopping NTP server ntpd * Starting NTP server ntpd ... * Starting NTP server ntpd }}} * attachment:Ubuntu-boot1.png * attachment:Ubuntu-boot2.png ==== 終了時 ==== * shutdown/reboot時は、/etc/rc0.d/K25hwclock.sh(あるいは/rc6.d/)によって、H/W clockがSystem clockによって上書きされる。 {{{ if /sbin/hwclock --systohc $GMT $HWCLOCKPARS $BADYEAR; then }}} * attachment:Ubuntu-reboot.png == misc == * restrict default ignore と設定すると、ntpdが別のntpサーバへ同期するクライアントとしての動作も当然阻害される。従って、配布をせず時刻合わせのクライアントとしてのみ使う場合でも、defaultはignoreしつつ以下のように特定のサーバとは同期は出来るようにしておくこと。 {{{ server 192.168.100.254 restrict 192.168.100.254 mask 255.255.255.255 nomodify notrap noquery }}} * これを忘れると、いつまで経っても同期先サーバのstratumが16と表示されて同期されない。