NTP
提供: Wikinote
やってることは単に時刻を合わせて、時計の進み方を正確にするだけなのに、異様に奥が深い NTP について。
ちなみに、ntp 付属文書の 日本語訳 やってます。いつまでかかることやら。
これ Expert Network Time Protocol: An Experience in Time with NTP (Expert) 誰か翻訳して…。
ツール等
ntptime
カーネルの時計関連の情報を表示・設定することができる。
[hagio@lab ~]$ ntptime ntp_gettime() returns code 0 (OK) time cd8dcff1.8d374000 Mon, Apr 13 2009 23:51:29.551, (.551624), maximum error 20085 us, estimated error 0 us ntp_adjtime() returns code 0 (OK) modes 0x0 (), offset 0.000 us, frequency 77.335 ppm, interval 1 s, maximum error 20085 us, estimated error 0 us, status 0x1 (PLL), time constant 6, precision 1.000 us, tolerance 512 ppm,
それぞれの値の意味は…難しいんだこれが。誰か解説本書いてくれないかなあ。
ntp_adjtime()
から返っている status 値は、/usr/include/linux/timex.h で定義されている以下の値を取る。
/*
* Status codes (timex.status) */ #define STA_PLL 0x0001 /* enable PLL updates (rw) */ #define STA_PPSFREQ 0x0002 /* enable PPS freq discipline (rw) */ #define STA_PPSTIME 0x0004 /* enable PPS time discipline (rw) */ #define STA_FLL 0x0008 /* select frequency-lock mode (rw) */ #define STA_INS 0x0010 /* insert leap (rw) */ #define STA_DEL 0x0020 /* delete leap (rw) */ #define STA_UNSYNC 0x0040 /* clock unsynchronized (rw) */ ★いわゆる 11 分モードのとき、0 になる #define STA_FREQHOLD 0x0080 /* hold frequency (rw) */ #define STA_PPSSIGNAL 0x0100 /* PPS signal present (ro) */ #define STA_PPSJITTER 0x0200 /* PPS signal jitter exceeded (ro) */ #define STA_PPSWANDER 0x0400 /* PPS signal wander exceeded (ro) */ #define STA_PPSERROR 0x0800 /* PPS signal calibration error (ro) */ #define STA_CLOCKERR 0x1000 /* clock hardware fault (ro) */ #define STA_RONLY (STA_PPSSIGNAL | STA_PPSJITTER | STA_PPSWANDER | \ STA_PPSERROR | STA_CLOCKERR) /* read-only bits */
参考文献
- ntp.org ソースの次に信頼できるサイト。翻訳したい。
- Managing Accurate Date and Time Linux での時刻管理に関する JF ドキュメント。
- The Clock Mini-HOWTO コンピュータに正確な時間を設定して、時計が狂わないようにする方法。
- Stray Penguin - Linux Memo (ntpd) 日本語の情報の中では信頼性が高いと思われるページ。
- NTP - wiki@nothing NTP を使うだけの人はここを見るべき。
- Network Time Protocol - Wikipedia 概要を思い出したいときに見る。