0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

読み物としての時刻設定

Posted at

時刻設定

Linuxを使っていると、システムクロックが狂ってくることがある。Windowsではシステム時計といっていたが、Linuxでは一般的にシステムクロックといういい方をする。そのままではあるが。システムクロックを表示するコマンドが、dateコマンド。dateコマンドを使って、時間合わせをすることもできる。

システムクロックだが、OS起動時にハードウェアクロックから引用されることになる。クロックシステムが狂っているということは、つまり、ハードウェアクロックが狂っているということになる。システムクロックの時刻さえ正しければ、ハードウェアクロックが多少狂っていたとても何ら問題はない。各種システムが参照する時刻は、システムクロックから参照しており、ハードウェアクロックを直接参照しているわけではないからだ。

Windowsを使っている時は、システムクロックを時々修正することはあっても、ハードウェアクロックを修正するモチベーションまではなかった。ハードウェアクロックを修正するにはWindows起動前にBIOS画面を立ち上げて、そこで修正しないといけないからだ。しかし、Linuxであれば、CUIから直接ハードウェアクロックを修正することができる。

システムクロックを表示するコマンドがdateコマンドであったが、ハードウェアクロックを表示するコマンドはhwclockコマンドになる。date ; sudo hwclockとワンライナーでコマンド入力すると、2つの時間がほぼ同時に表示できるので、差異が一目瞭然で確認できる。また、ハードウェアクロックを修正する時も、hwclockコマンドを使って修正が行える。

hwclockには様々なオプションが用意されている。ハードウェアクロックをシステムクロックに同期させたり、逆に、システムクロックをハードウェアクロックに同期させることもできる。OS起動時は、ハードウェアクロックをシステムクロックに同期させ、シャットダウン時には、逆に、システムクロックをハードウェアクロックに同期させる処理を、内部的に行っているようだ。なので、運用途中に、手動で同期合わせを行う必要性はほぼないということになる。

さて、システムクロックが狂っていたら、スマホで時間を確認して、dateコマンドで手動で修正してもいいのだが、折角なので、NTPサーバーから標準時刻を秒単位で取得することもできる。この時に使うコマンドが、ntpdateコマンドになる。

ntpdate NTPサーバーのURLとすると、NTPサーバーから時間を取得することができる。そして、取得した時刻はシステムクロックに反映される。ハードウェアクロックではない。そして、その後、hwclockコマンドを使って、ハードウェアクロックに同期させるという手順となる。

NTPの次期バージョンとしてChronyというツールがあるが、Chronyを使うと、NTPサーバーから取得した時刻を、ハードウェアクロックに直接反映させることができるようになる。どうも、NTPを使うよりもChronyを使う方がトレンドになっているようだ。

ntpdateコマンドを使って、手動で時刻合わせを行う以外にも、ntpdサービスを常駐させて、自動で定期的に時刻を合わせる方法もある。ntpはデフォルトでは入っていないため、別途インストールすることになる。また、ntpの設定を行うファイルは、/etc/ntp.confファイルとなる。ここを編集して、ntpdを起動すればOKのようだ。

サービスを常駐させると、メモリ容量を圧迫することになり、ネットワークトラフックも増えることになるため、そこまでしてクライアントでNTPを使うべきかどうかは、少し考えた方がいいかも。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?