メニュー 閉じる

Centos時間設定に関して

参考URL:https://qiita.com/tabimoba/items/f9c4f9024f7c3ff65360

コマンド参考:https://kazmax.zpp.jp/cmd/h/hwclock.8.html

 

Linuxでは、日時情報として「Local time」「Universal time」「RTC time」の3種類が管理されています。これはtimedatectlコマンドで確認することが出来ます。

「Local time」は現地時刻

「Universal time」は世界標準時で

これらはシステムクロックと云われます。

「RTC time」はハードウェアが持つ日時情報で

これはリアルタイムクロックと云われます。

BIOS/UEFIで設定可能な日時情報と「RTC time」は同じものです。

うち、dateコマンドで反映されるのは「Local time」と「Universal time」の2つです。(正しくは、設定値が反映されるのは「Local time」で、「Universal time」は「Local time」の時差に合わせて結果が出力されるものです)

「RTC time」はdateコマンドで日時設定を行っても、その設定値が反映されません。また、NTPによる日時補正についても同様(「Local time」しか補正されない)となります。

対応

最もシンプルな方法は、BIOS/UEFIで日時を設定することです。しかし、既にLinuxが起動していて、再起動が難しい場合は、hwclockコマンドで「RTC time」を設定することができます。

dateコマンドで日時を設定した後に、hwclock –systohcを実行すると、「Local time」と「RTC time」が同期されます。

上記実行後、timedatectlコマンドを実行すると、「Localtime」と「RTC time」が同期されていることがわかります。

なお、NTPによる日時補正は、前述の通り「Local time」しか反映されませんので、「RTC time」の日時ずれが生じた際は、上記コマンドを実行する必要があります。1週間〜1ヶ月に1回程度cronで上記コマンドを定期的に実行するのが良いでしょう。