非エンジニアのエンジニア道

非エンジニアからエンジニアに転向!その勉強の軌跡を載せていきます。

Linuxの時刻について

2種類の時刻について

UTC(Coordinated Universal Time:協定世界時)
原子時計を基に定められた世界共通の標準時で、天体観測を基にしたGMT(グリニッジ標準時)とほぼ同じ


ローカルタイム
国や地域に共通の地域標準時であり、日本の場合はJST(Japan Standard Time:日本標準時)
UTCとJSTでは9時間の時差がある(JSTがUTCより9時間進んでいる)

時計について

Linuxシステムには主要な時計が2つ存在する。


ハードウェアクロック
BIOS側で設定されている
CPU内部で動作しているすべてのコントロールプログラムから独立しており、マシンの電源が OFF のときにも動作する。


システムクロック
OS側で設定されている
Linuxカーネルの内部に存在している時計。タイマー割り込みによって駆動されているため、Linuxが起動している間しか動作しない。


Linuxではシステムクロックがすべての基準となる時計。
ハードウェアクロックの基本的な役割は、システムが動いていない間にも時計を動かしつづけること。
Linuxシステムは起動時に一度だけハードウェアクロックを参照し、システムクロックを設定する。
その後はハードウェア・クロックは用いない。

hwclock

ハードウェアクロックの読み取りとハードウェアクロックとシステムクロックの同期を行う

オプション

オプションなし 現在のハードウェア時刻を表示する
--hctosys ハードウェアクロックをシステムクロックに設定
--systohc システムクロックをハードウェアクロックに設定
--debug 詳細表示する

date

システムクロックを表示する。

+書式

で指定した形式で表示できる


スーパーユーザーは、-sで時刻を変更することができる

ntpdate

指定されたNTPサーバーに対し時刻を問い合わせ、その時間をシステムクロックに設定する。
ntpdが稼働していると、ntpdateは使えなくなる

オプション

-q NTPサーバーへ時刻の問い合わせのみを行い、 システムクロックの時刻は変更はしない
-s 実行結果をsyslogに出力する

syslogについて

/etc/syslog.confに記載されているとおり、/var/log/messagesに出力される

ntpd

昔書いたので、補足。

ntp.confについて

記載 内容
restrict ACLの指定
server 参照クロックのアドレスを指定
fudge クロックドライバについてのstratumなどの追加情報を指定
driftfile NTPサーバの参照時刻からのインターバルタイマーの発振周波数のずれ(drift)をPPM(parts-per-million:0.0001%)単位で記録するファイル