Linuxを利用する上で知っておきたい日時関連の基礎知識です。「タイムゾーン」「ハードウェアクロックとシステムクロック」「時刻の確認と変更」について解説します。
目次
タイムゾーン
UTC
- Coordinated Universal Time:協定世界時
- 世界共通の標準時。
- UTCよりも何時間進んでいるか、遅れているかで表す。
- 日本だと
[UTC+9]
のように表記される。
- 日本だと
表記例
2016-05-23T15:00:00.000Z
2016-05-24T00:00:00+09:00
JST
- Japan Standard Time:日本標準時
- 日本における標準時。
- JSTがUTCより9時間進んでいる。
UTC:5月23日(月) 15:00
JST:5月24日(火) 00:00
タイムゾーンをJSTに変更
バックアップしておきます。
cp /etc/localtime /etc/localtime.org
タイムゾーンファイルを変更します。
ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
上記方法では、再起動後に元の設定に戻ります。
ハードウェアクロックとシステムクロック
ハードウェアクロック
- マザーボードが持つ内部時計。
- PCの電源がオフの状態でも動作する。
システムクロック
- PC起動時にハードウェアクロックを参照して設定される。
時刻の確認と変更
dateコマンド
- システムクロックを参照して表示する。
dateコマンドでシステムクロックを変更することもできます。ただ、インターネットに接続できる環境であれば、NTPサーバを利用して正確な時刻をシステムクロックに設定したほうが良いです。
hwclockコマンド
- ハードウェアクロックを参照して表示。
hwclock -r
- システムクロックをハードウェアクロックに設定。
hwclock -w
※次のような使われ方が多いのかと思います。
- NTPサーバを利用してシステムクロックを正確にする。
- cronで定期的に
hwclock -w
を実行して、システムクロックをハードウェアクロックに反映させる。
ntpdate
NTP(Network Time Protocol)サーバ
に接続してシステムクロックを設定
ntpdate <NTPサーバ名>
- 2つのモードがある
- slewモード:徐々に時刻の修正
- stepモード:即座に時刻調整(デフォルト)
ntpdデーモン
- ntpdデーモンをクライアントとして動作するように起動させることで、ntpサーバと時刻を同期できる。
- システムに問題が発生しないように徐々に時間を調節させる。
- 設定ファイルは、
/etc/ntp.conf
時刻同期ができているか確認するには下記コマンドを利用します。
ntpq -p