11.1. システムクロックの設定

11.1. システムクロックの設定

11.1.1. システムクロックとハードウェアクロック

Linuxのクロックシステムにはシステムクロックとハードウェアクロックがある。

システムクロック

システムクロックはメモリ上で動作する時計システム。 Linuxカーネル内に存在し、Linux起動時にハードウェアクロックと同期する。

このクロックは電源がオフになると時計情報も消える。

ハードウェアクロック

ハードウェアクロックはハードウェアとして内蔵された時計システム。 このクロックはシステム停止してもハードウェア上の内蔵バッテリーで動作する。

11.1.2. システムクロック関連コマンド

dateコマンド

システムクロックを参照して現在日時表示、時刻の変更ができるコマンド。

date
書式説明
%Y
%m月(01-12)
%d日(01-31)
%H時(00-23)
%M分(00-59)
%a曜日
%b月名

hwclockコマンド

ハードウェアクロックの参照、システムクロックをハードウェアクロックにセットできるコマンド。

hwclock <オプション>
オプション説明
-rハードウェアクロックの表示
-s (–hctosys)ハードウェアクロックの時刻をシステムクロックに反映
-w (–systohc)システムクロックの時刻をハードウェアクロックに反映
-uUTC (Universal Coordiated Time)として反映

timedatectlコマンド

systemd採用ディレクトリビューションで使用可能な日付、時刻、タイムゾーンを管理を設定できるコマンド。

timedatectl status

11.1.3. NTPによる時刻設定

ハードウェアクロック、システムクロックともに完全に正確な時刻情報ではないのでNTPというプロトコルを通じて正確な情報を取得する。 NTPは階層構造になっており、最上位は原子時計やGPSなどが位置して、その直下にあるNTPサーバを Stratum1、その下を Stratum2 と続いていく構造となっている。

ntpdateコマンド

NTPサーバから正確な時刻取得するコマンド。

ntpdate

ntpサーバの運営

NTPサーバを自前で運用することも可能。 LAN内にNTPクライアントが多いなら用意すると良い。

NTPサーバの起動はSysVinitならばsudo /etc/init.d/ntpd start、Systemdならばsudo systemctl start ntpd.serviceで行う。 なお設定は/etc/ntp.confで行える。

11.3.4. Chronyによる時刻管理

Chronyはntpd/ntpdateの代替の時刻管理システム。 ntpパッケージと同時には使えないのが特徴。

chronydデーモンとchronycクライアントで構成される。 設定ファイルは/etc/chrony.confとなる。

chronyコマンド

chronydの管理を行うコマンド。

chronyc --help