Version 10 (modified by mitty, 15 years ago) (diff) |
---|
ntpdate
- ntpdateの引数に「-b」があると、ずれの大きさに寄らず「stepモード」として即座に時刻を合わせる。
ntpd
- /etc/ntp.conf
refer local clock
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
- ntp.conf
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などを指定する引数がセットされている。
- boot時に実行されるスクリプトでは、以下のような流れになっている
ログ
- 以下のようなログが画面に表示される
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などを指定する引数がセットされている。
- /etc/init.d/halt
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が起動される以上のことは行われない
- /etc/network/if-up.d/ntpdate
ログ
- 以下のようなログが画面に表示される
* Setting the system clock ... * Configuring network interfaces... * Stopping NTP server ntpd * Starting NTP server ntpd ... * Starting NTP server ntpd
終了時
- shutdown/reboot時は、/etc/rc0.d/K25hwclock.sh(あるいは/rc6.d/)によって、H/W clockがSystem clockによって上書きされる。
if /sbin/hwclock --systohc $GMT $HWCLOCKPARS $BADYEAR; then
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と表示されて同期されない。
Attachments (5)
- CentOS5-boot.png (11.6 KB) - added by mitty 15 years ago.
- CentOS5-reboot.png (10.8 KB) - added by mitty 15 years ago.
- Ubuntu-boot1.png (11.7 KB) - added by mitty 15 years ago.
- Ubuntu-boot2.png (11.1 KB) - added by mitty 15 years ago.
- Ubuntu-reboot.png (4.5 KB) - added by mitty 15 years ago.
Download all attachments as: .zip