質問: ubuntu15.10を使用しています。 ntpの設定で日本のサーバーを選んでもUTCになると前の質問で教えていただきました。 予想ですが私が選んだその日本のサーバーもUTCの時刻を配布していると思います。 ログを見ても確かに9時間ずれていてUTCと表示されていました。 dateコマンドを打つと日本時間のJSTと書いてあります。 これはbiosレベルの時刻をとってきていて、時刻がJSTと近いからJSTと表示しています。(検証しました。) 質問 1.どこかのサーバーでUTCではなくJSTを配布しているサーバーはないのでしょうか? 2.何かのサービスで時刻を参照するようなときはBIOSの時刻かNTPの時刻どっちをとってきているのでしょうか?例えばmysqlなどのテーブルに時間を書き込むときの時間の参照先がbios時刻なのかntp時刻なのか。 3.ntpとbiosの時刻が互いにUTCとJSTですがなにか問題は起きないのでしょうか? よろしくお願いしますm(__)m 追記================================================== ubuntuはデフォルトでshutdown時に自動的にUTCの時刻がbiosに上書きされている設定は直していますm(__)m /etc/default/rcSの一部です ``` #assume that the bios clock is set to UTC time (recommended) UTC=no ```
回答: 世界の中心は**イギリスのロンドンにあるグリニッジ天文台**です。 その時計(太陽が真南に来た時に正午)のうるう秒等の修正を加えたものが`UTC`です。 `UTC`は**協定世界時**と呼ばれ、全世界の中心の時刻と定義されています。 日本の中心は**兵庫県にある明石市立天文科学館**です。 「JSTM」(Japan Standard Time Meridian=日本標準時子午線)と表示された時計塔があります。 何故なら、明石市立天文科学館が東経135度にあり、ロンドンのグリニッジ天文台から丁度9時間進んでいるからです。 それが転じて`UTC`に対応する日本時間は`JST`です Wikipediaの日本標準時参考 さて、ここからLinuxのOSの話に入ります。 Linuxでは設定ファイルに**お前の時計何処基準よ?**を記載します。 Ubuntuでは`/usr/share/zoneinfo/Asia/Tokyo`ファイルを`/etc/localtime`にコピーします。 これで、このパソコンは日本の時刻(JST)を使う事が確定します。 なんでそんな設定するねんという話ですが、 全てのマシンはJSTがUTC+9時間という事を知っているからです。 UTCさえ分かればJSTを何時でも求める事が可能です。 dateコマンド打ってJSTが表示されるのは、人間様の都合で「俺日本人だからUTCで出されても困るんだよ、だからJSTで表示してねお願い」と言ってるだけの話です。 > > 1. どこかのサーバーでUTCではなくJSTを配布しているサーバーはないのでしょうか? > > > UTCのみ Wikipediaで「NTPプロトコル上では協定世界時 (UTC) を使って時刻を送受信する。」と定義されているので基本的に例外はなし > > 2. 何かのサービスで時刻を参照するようなときはBIOSの時刻かNTPの時刻どっちをとってきているのでしょうか?例えばmysqlなどのテーブルに時間を書き込むときの時間の参照先がbios時刻なのかntp時刻なのか。 > > > NTPの時刻? マシンが持ってる時刻はBIOSの時刻の1個のみで、パソコンに内蔵されている時計は基本的に品質が悪く数秒のズレがすぐに発生してしまいます。 なので、定期的に品質の高い時計積んだサーバー(所謂NTPサーバー)に今何時?と問い合わせ教えてもらっているだけです。 > > 3. ntpとbiosの時刻が互いにUTCとJSTですがなにか問題は起きないのでしょうか? > > > NTPサーバーとの通信内容は以下のようになります。 ローカルマシン「ちょっとNTP鯖さん、正しい時刻知りたいから今の時刻教えてくれ。」 NTP鯖「ええと...UTCで2016/02/24 10:52:30だね。」 ローカルマシン「なるほどなるほど、俺のマシンJSTだから9時間プラスして2016/02/24 19:52:30で登録しとくわ、ありがと!」