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) | システムクロックの時刻をハードウェアクロックに反映 | 
| -u | UTC (Universal Coordiated Time)として反映 | 
timedatectlコマンド
systemd採用ディレクトリビューションで使用可能な日付、時刻、タイムゾーンを管理を設定できるコマンド。
timedatectl status11.1.3. NTPによる時刻設定
ハードウェアクロック、システムクロックともに完全に正確な時刻情報ではないのでNTPというプロトコルを通じて正確な情報を取得する。 NTPは階層構造になっており、最上位は原子時計やGPSなどが位置して、その直下にあるNTPサーバを Stratum1、その下を Stratum2 と続いていく構造となっている。
ntpdateコマンド
NTPサーバから正確な時刻取得するコマンド。
ntpdatentpサーバの運営
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