●timedatectlコマンド
systemdの動作するシステムにおいてシステム時刻の表示や設定を行うコマンド。システムクロックとハードウェアクロックを同時に設定できる。
timedatectl [サブコマンド]
・status 現在の日付時刻や状態の表示(デフォルト)
・set-ntp yes|no NTPによる時刻同期の有効|無効
・set-time 日付|時刻 日付や時刻の設定。時刻を指定しない場合は0時0分0秒
・set-timezone タイムゾーン タイムゾーンの設定
・list-timezones タイムゾーンの一覧表示
※set-timeサブコマンドでシステム時刻を手動で設定する場合は、NTP(Network Time Protocol)による時刻同期機能を無効にしなければならない(デフォルトでは有効)
●Linuxの動作するシステムで扱う時刻には、ハードウェアクロックとシステムクロックがある
・ハードウェアクロック hwclockコマンド PCに内蔵された時刻。電源OFF状態でも動作。
・システムクロック dateコマンド Linuxカーネルが持つ時刻。システム起動時にハードウェアクロックの値が設定される。
■hwclockコマンド
hwclock オプション
・-r ハードウェアクロックを表示(オプションなしと同じ)
・-s | —hctosys ハードウェアクロックの時刻をシステムクロックに反映させる
・-w | —systohc システムクロックの時刻をハードウェアクロックに反映させる
■dateコマンド
date [MMDDhhmm[CC[YY]][.ss]]
(MMは月、DDは日、hhは時、mmは分、CCは西暦の上2桁、YYは西暦の下2桁、ssは秒)
何も指定せず、コマンドのみを実行すると現在の日付時刻が表示。
また、+に続けて日付時刻のフィールド文字を指定すると、指定した通りの日付時刻書式で表示
●ntpdate コマンド
手動でNTPサーバから正確な時刻を取得し、システムクロックに反映させるNTPクライアントとしてのツール。
ntpdate コマンド書式:
ntpdate [オプション] NTPサーバ名
●ntpdの各種設定は「/etc/ntp.conf」で行う。
「/etc/ntp.conf」の主な設定項目
・restrict ntpdへアクセス制限を行う
・server 時刻を取得するサーバを指定
・driftfile 自身の自国のずれを記録するファイルを指定
公開NTPサーバを利用する場合は、複数のNTPサーバ群で構成される「pool.ntp.org」プロジェクトに登録されている外部サーバ等を指定する。「pool.ntp.org」を利用すると、複数のNTPサーバから、負荷分散の技術の一つである「DNSラウンドロビン」を利用して時刻を取得する。例えば日本であれば「0.jp.pool.ntp.org」から「3.jp.pool.ntp.org」といったserverを指定することで、遅延の少ない、正確な時刻を入手できるようになる。
●ntpd の時刻同期状況は ntpq コマンドで確認できる。
ntpq コマンドの書式:
ntpq オプション 接続先サーバ
・-p serverに指定したサーバとの同期状態を一覧表示する。対話モード状態のpeersコマンドと同じ。
・-i 対話モードで起動する(デフォルト)
●Chrony(クローニー)
ntpdに代わるNTPサーバ/クライアント。Chronyのデーモンはchronyd、chronydのコマンドラインツールはchronycコマンド。
chronydはntpdに比べて、通信が不安定な状態でも良好に動作、高い精度で時刻を同期できる。必要な時だけCPUを使用し、メモリ使用量も少なく、CentOS7以降では標準システムとなっている。
Chronyの設定ファイルは「/etc/chrony.conf」
/etc/chrony.confの主な設定項目
・server 時刻を取得するNTPサーバを指定。サーバ/クライアントの関係。
・peer 時刻を取得するNTPサーバを指定。同じ階層(stratum)同士。
・pool 時刻を取得するNTPサーバのプール(複数アドレスを集約した名前)を指定
・driftfile 自身の時刻のずれを記録するファイルを指定
・rtcsync システムクロックをハードウェアクロック(RTC)にコピーする
●chronycコマンド
chronydの管理を行う
chronyc [サブコマンド]
・activity オン/オフラインのNTPサーバ数を表示
・sources 時刻のソースを表示
・sourcestats 自国のソースの統計情報を表示
・tracking トラッキング(時刻同期の詳細情報)を表示
※サブコマンドを指定せずにchronycコマンドを実行すると、対話モードで起動する