質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
NTP

NTP (Network Time Protocol) とは、時計の時刻をネットワーク上のNTPサーバーの持つ正しい時刻に同期するためのプロトコルです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Q&A

解決済

4回答

7926閲覧

ubuntuの時間について

mint.cherry

総合スコア284

NTP

NTP (Network Time Protocol) とは、時計の時刻をネットワーク上のNTPサーバーの持つ正しい時刻に同期するためのプロトコルです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

1グッド

0クリップ

投稿2016/02/24 09:38

編集2016/02/24 09:47

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
ikuwow👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

ベストアンサー

世界の中心はイギリスのロンドンにあるグリニッジ天文台です。
その時計(太陽が真南に来た時に正午)のうるう秒等の修正を加えたものがUTCです。
UTC協定世界時と呼ばれ、全世界の中心の時刻と定義されています。

日本の中心は兵庫県にある明石市立天文科学館です。
「JSTM」(Japan Standard Time Meridian=日本標準時子午線)と表示された時計塔があります。
何故なら、明石市立天文科学館が東経135度にあり、ロンドンのグリニッジ天文台から丁度9時間進んでいるからです。
それが転じてUTCに対応する日本時間はJSTです

Wikipediaの日本標準時参考


さて、ここからLinuxのOSの話に入ります。
Linuxでは設定ファイルに**お前の時計何処基準よ?**を記載します。

Ubuntuでは/usr/share/zoneinfo/Asia/Tokyoファイルを/etc/localtimeにコピーします。
http://oswald.hatenablog.com/entry/2014/01/27/195427

これで、このパソコンは日本の時刻(JST)を使う事が確定します。
なんでそんな設定するねんという話ですが、

全てのマシンはJSTがUTC+9時間という事を知っているからです。
UTCさえ分かればJSTを何時でも求める事が可能です。
dateコマンド打ってJSTが表示されるのは、人間様の都合で「俺日本人だからUTCで出されても困るんだよ、だからJSTで表示してねお願い」と言ってるだけの話です。


  1. どこかのサーバーでUTCではなくJSTを配布しているサーバーはないのでしょうか?

UTCのみ
Wikipediaで「NTPプロトコル上では協定世界時 (UTC) を使って時刻を送受信する。」と定義されているので基本的に例外はなし

  1. 何かのサービスで時刻を参照するようなときはBIOSの時刻かNTPの時刻どっちをとってきているのでしょうか?例えばmysqlなどのテーブルに時間を書き込むときの時間の参照先がbios時刻なのかntp時刻なのか。

NTPの時刻?
マシンが持ってる時刻はBIOSの時刻の1個のみで、パソコンに内蔵されている時計は基本的に品質が悪く数秒のズレがすぐに発生してしまいます。
なので、定期的に品質の高い時計積んだサーバー(所謂NTPサーバー)に今何時?と問い合わせ教えてもらっているだけです。

  1. ntpとbiosの時刻が互いにUTCとJSTですがなにか問題は起きないのでしょうか?

NTPサーバーとの通信内容は以下のようになります。

ローカルマシン「ちょっとNTP鯖さん、正しい時刻知りたいから今の時刻教えてくれ。」
NTP鯖「ええと…UTCで2016/02/24 10:52:30だね。」
ローカルマシン「なるほどなるほど、俺のマシンJSTだから9時間プラスして2016/02/24 19:52:30で登録しとくわ、ありがと!」

投稿2016/02/24 11:00

編集2016/02/24 11:30
miyabi-sun

総合スコア21158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mint.cherry

2016/02/24 11:34

みやびさん回答ありがとうございます!非常に丁寧でわかりやすかったです。解決できてたすかりました。 ntpの規定としてutcのみなんですね。(昔教えてくれてもらったのに、すっかり忘れていたことは内緒です(笑)) UTCとってきたのを+9時間というのは少し思ってはいましたが自信が持てました。ありがとうございます! (私の考えてたことはそもそもJSTをとってくれるプロトコルがないものかと考えていました。) 3に関しては、すこし難しいところはありますが頑張ってみます!! ありがとうございましたm(__)m
miyabi-sun

2016/02/24 11:41

他のお二人の答えもシンプルで美しいと思いますが、 わざわざBAにしていただきありがとうございます。 NTP鯖のUTCの下りは回答当初知らずに速攻調べて修正したのは内緒です。 良い勉強出来ました、ありがとうございます。
guest

0

1.どこかのサーバーでUTCではなくJSTを配布しているサーバーはないのでしょうか?

ないと思います。プロトコルの仕様としてUTCを使うことになっていますから。

2.何かのサービスで時刻を参照するようなときはBIOSの時刻かNTPの時刻どっちをとってきているのでしょうか?

NTPによる時刻同期を行う設定にしている場合はNTPからの情報を使い、そうでない場合はRTC(BIOSの時刻)の情報を使います。NTPを使う設定でもネットにつながっていない場合やNTPサーバーから正しく情報が取得できない場合は、RTCの情報を使います。そのため、NTPで時刻合わせをした結果を適当なタイミングでRTCにも反映させます。

ただし、NTPもRTCも秒単位でしか時刻を取得できないので、実際に使用する時刻は高精度のタイマーICを使ってカウントしています。そして、時刻取得APIなどで時刻を取得する際はその値を返しています。

3.ntpとbiosの時刻が互いにUTCとJSTですなにか問題は起きないのでしょうか?

OSはRTCがローカルタイムということを知っているので、OSの設定でタイムゾーンを正しく設定していれば問題ありません(OSインストール時に設定を促される場合もあります)。

投稿2016/02/24 10:52

catsforepaw

総合スコア5938

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mint.cherry

2016/02/25 01:38 編集

回答ありがとうございます。 NTPはもうUTCになっているという決まりなのですね。 BIOSの時刻はのことをRTCと呼ぶのははじめてしりました勉強になりますm(__)m 優先順位と言っていいのかわかりませんが、 ネットにつながっていなかったらRTCから表示する。 ネットにつながっているならNTPでUTCをとってきて本体のtimezoneにより+9時間されて表示される。 という解釈していますm(__)m
guest

0

うーん。
まずntpはUTC(協定標準時)を扱います。JSTなんぞない。
でクライアント(PCなど)の内部の時刻をこれを用いて補正します。
この補正はそこまで頻繁に行う必要はなく、例えばWindowsでは一週間ごとにntpを使って時刻補正をするようになっています。

なのでJSTを返すntpサーバーがあったらそのサーバーは信用出来ないです。だって9時間もずれてるんでしょ、どんだけ狂ってるのさ、その時計。

どこかのサーバーでUTCではなくJSTを配布しているサーバーはないのでしょうか?

しらず。自分で作ればいいんじゃない?

何かのサービスで時刻を参照するようなときはBIOSの時刻かNTPの時刻どっちをとってきているのでしょうか

サービスによる。さっきも言ったとおり、そんなに頻繁にntpサーバーと通信するものではない、一般的には。

例えばmysqlなどのテーブルに時間を書き込むときの時間の参照先がbios時刻なのかntp時刻なのか。

知らん。
http://kanonji.info/blog/2014/07/29/サーバーがUTCなのでMySQLのタイムゾーンが気になって
これ見る感じはサーバーごとじゃない?

ntpとbiosの時刻が互いにUTCとJSTですがなにか問題は起きないのでしょうか?

特には。JSTを吐くような糞ntpサーバと通信したらクライアントの時計も狂うけど、BIOSの時計まで書き換わるかはOSやソフトの実装次第。

投稿2016/02/24 11:17

yumetodo

総合スコア5850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mint.cherry

2016/02/25 01:51

回答ありがとうございます。 > JSTを返すntpサーバーがあったらそのサーバーは信用出来ない 私の中ではUTCをとってきていて本体のほうで+9時間されているということは、思ってはいましたが、勝手ながらないだろうと思っていましたm(__)m汗)普通はそのような感じになるのですね。 1の質問に関して本体のほうで+9時間されているのを確信を持ち今では恥ずかしい質問です… 教えていただきありがとうございます!勉強になりましたm(__)m
yumetodo

2016/02/25 16:00

昔Win32apiを使ってNTPから時刻取ってくるプログラムを書いたことがあるので貼っておきますね(昔書いたコードとか汚すぎて私は読む気にならないんですが) https://github.com/yumetodo/NTP_timer/blob/master/NTP_timer/NTP_timer_kai.cpp ToLocalStruct_tm関数が時差補正してます。gmtime_sとlocaltime_sの差分=時差として補正しています。 今ならboost::asioとstd::chrono使ってもうすこしまともなプログラム書くんだろうけど当時は知らなかったもんで、ものすごく汚い。
guest

0

きみは「時点」とその表現方法について理解してないね。
なんかの書籍で読んだ例だが、昼過ぎに日本からアメリカに電話したらこっちは深夜だと怒られたという。なんと電話はタイムマシーンで過去の深夜にかけてしまったというのか。すごい。

投稿2016/02/24 10:16

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mint.cherry

2016/02/24 10:32

回答ありがとうございます。 地球の時差については常識の範囲として省略していました。地理的なはなしになりますね。 すいませんm(__)m それはすごいですね(笑)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問