時刻の確認と変更(date, hwclock, ntpd)

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に変更

  1. バックアップ
cp /etc/localtime /etc/localtime.org
  1. タイムゾーンファイルを変更
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