プロが教えるわが家の防犯対策術!

「Linuxで時刻がズレる」ということを初めて知りました
・物凄くびっくりしました
・なぜズレるのでしょうか?

パソコンの時刻がズレない理由は、タイムサーバー(?)へ不定期で随時アクセスしているから?
・パソコンの時刻もズレているのでしょうか?
・ズレていない(ように見える)理由は、タイムサーバーへアクセスしているから?
・「Linux」でもタイムサーバーへアクセスさせれば、随時修正され、ズレていないように見えるのでしょうか?

質問者からの補足コメント

  • うーん・・・

    Q1.ハードウェアクロック
    ・CMOS電池を外さない限りは、時刻はズレることはない?

    Q2.システムクロックは必ずハードウェアクロックを参照するのでしょうか?
    ・連動しないことはあり得る?
    ・設定は必要?

    Q3.システムクロックは電源を切る度に時刻がズレていく?
    ・再起動したら、ハードウェアクロックを参照する仕様?
    ・あるいは設定による?

    Q4.CentOS再起動と時刻のズレに関係はあり得ますか?

    Q5.CentOSはデフォルトではNTPサーバと同期しない?
    ・設定が必要ですか?

      補足日時:2017/11/06 12:00

A 回答 (4件)

A1 ハードウェアクロックの水晶発振子はそれほど高性能じゃないのでそこそこのズレはあります。

ものによっては月差15秒以上あるんじゃないかな。
A2 少なくとも電源ON時はハードウェアクロックをみないと現在時刻が分かりませんね。
A3 基本は電源ONや再起動時にハードウェアクロックから現在時刻を貰ってシステムクロックを初期化します。逆にOS終了時とかにシステムクロックの現在時刻をハードウェアクロックに反映していると思いますけど、これは設定によるかも。
A4 ロケール設定によっては間違った時刻をハードウェアクロックに設定して無茶苦茶になることもありますが・・・今どきはあまりないかと。
A5 Windowsと違ってデフォルトのNTPサーバはないので自分で設定しないとダメですね。

それで時計がずれるってどのくらい、月に何秒とかのレベルなら適当な周期でNTPサーバと同期すれば改善するでしょう。
数時間もずれるようだと何か設定が間違っていてLinuxが積極的に時計を狂わせている可能性が高いのでロケールなど設定を確認してください。
    • good
    • 1

どのように時刻がずれているのか書かれていないので何とも言えませんが…



・システムクロックのベースになっているハードウェアクロックがそもそも信頼できない
・システムクロックがそもそも信頼できない
・信用できないNTPサーバと同期している
・通信経路による誤差
等々…システムクロックはそもそもとして信頼できるような代物ではありません。
放置すれば1年に数分単位でずれても不思議ではありません。

Windowsの場合は週1回、time.windows.comというそこそこ信頼できるNTPサーバとの間で時刻同期する事でそこそこ信頼できる時刻を指すようにしています。
またNTPサーバとの同期時に時間が進むようならシステムクロックの1秒を長く、時間が戻るようなら1秒に時間を短く調整しますので、定期的にNTPサーバと同期をし続ければ週1回でも日常的な使用には困らない程度の精度に到達します。

LinuxでもCronでntpdateを-Bオプション付きでプロバイダのNTPサーバなどネットワーク的に近い信頼できるNTPサーバと同期すれば精度の問題はある程度解決できます。
1日1~2回程度同期すればDB程度であれば十分な精度に到達します。
#Nictのような信頼はできるけれどネットワーク的に遠いNTPサーバに接続すると通信経路によるラグが一定せず、フラフラする時計になってしまうのであまりお勧めできません。

後は周辺機器にNTP以外での時刻動機をするような機器が無いか確認して、信用ができる方法のみを使うように整理して1つの経路で信頼できる時刻と同期する必要があります。
    • good
    • 0
この回答へのお礼

>信用できないNTPサーバと同期している
・何も設定していないので、これではないと思います
・多分、再起動とかそういう感じだと思います
・基本的なことが分かっていないため、質問に追記しました

・回答を読んで、定期的にNTPサーバと同期する方法が一般的なのかな、と思いました
・LinuxなのでCron使用しようかな、と思います

お礼日時:2017/11/06 11:52

>なぜズレるのでしょうか


原因だけ申し上げれば、ロケールが異なっているからでしょう。

問題は対処法で星の数ほど種類があるLinuxですから決して一律ではありません。
言語設定を行うとロケールも合わせて書き換えてくれるものもあれば、一から十までひとつひとつユーザーが手を下さないといけないものもありますし、Windows等とのデュアルブートだとひと手間ふた手間増えることもあります。

私はCentOSについてはあまりよく知らないので、下記サイトを参考にされてください。
https://eng-entrance.com/linux-localization-locale
http://zero-config.com/centos/changelocale.html
    • good
    • 0
この回答へのお礼

・回答ありがとうございました

>決して一律ではありません。
・なるほど、そうなのですね
・定石みたいな方法があるのかと思っていました

お礼日時:2017/11/06 11:45

CentOS6.5にアップしては?


ハードウェアクロックがズレているようであれば、ntpdate後にハードウェアクロックもコマンドで修正する。
「clock -w」で、システムクロックをハードウェアクロックに設定(hwclock  -w)
http://kajuhome.com/patio_thread/2097.shtml

yum updateでサーバを最新の状態にアップデートしたところ、時刻の誤差がなくなった事例があります。

「Linuxのシステムクロックの使い方」
https://eng-entrance.com/linux-clock-system
    • good
    • 0
この回答へのお礼

・回答&リンク提示ありがとうございました
・CentOS のバージョンは 6.8 です

お礼日時:2017/11/06 11:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!