情報ソース: Chapter 3. Configuring the Date and Time - Red Hat Customer Portal
コンピュータはだいたい次の 2 つの時刻を持ちます:
システムクロックは常に UTC でデータを保持し、アプリケーションにより必要に応じてローカルタイムに変換される。
システムクロックに保持されるデータは次の 2 つ:
リアルタイムクロックは UTC としても良いしローカルタイムとしても良いが、UTC が推奨される。
RHEL7 では時刻の表示と設定に次の 3 つのコマンドが用意されている:
timedatectl
: systemd
によって提供されているツールdate
: 従来のコマンドhwclock
: リアルタイムクロックへアクセスするためのツール基本的な情報の表示は単純に timedatectl
を叩けば良い:
$ timedatectl Local time: Tue 2018-08-28 18:22:12 UTC Universal time: Tue 2018-08-28 18:22:12 UTC RTC time: Tue 2018-08-28 18:22:11 Time zone: UTC (UTC, +0000) NTP enabled: yes NTP synchronized: yes RTC in local TZ: no DST active: n/a
chronyd
や ntpd
を使っておこなった変更は timedatectl に即時通知されるわけではなく、systemd-timedated.service
の restart が必要となる天に注意。
timedatectl set-time HH:MM:SS
コマンドによりシステムクロックとリアルタイムクロックを設定できます
date --set
および hwclock --systohc
を実行した場合と同様の挙動となるtimedatectl set-local-rtc [boolean]
を叩くtimedatectl set-timezone [time_zone]
を叩く
[time_zone]=Asia/Tokyo
とするtimedatectl list-timezone
でリストできるtimedatectl set-ntp [boolean]
を叩くdate
とか date -u
とか(雑)date --set [YYYY-MM-DD HH:MM:SS] --utc
とか叩けばいい情報ソース: 22.5. UTC, Timezones, and DST - Red Hat Customer Portal
/etc/localtime
の情報をもとに地域標準時を表示に使える。
時差情報は /usr/share/zoneinfo 配下に格納されていて、一例として JST は以下のような内容となっている:
$ strings /usr/share/zoneinfo/Asia/Tokyo TZif2 TZif2 JST-9
リアルタイムクロックのタイムゾーンは /etc/adjtime
の 3 行目を見るとわかる:
$ cat /etc/adjtime 0.0 0 0.0 0 UTC
date コマンドを用いるとシステムクロックのもつデータをフォーマットして表示できる
$ sudo cp /etc/localtime /tmp/localtime $ sudo ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime $ date Wed Aug 29 02:52:17 JST 2018 $ date -u Tue Aug 28 17:52:26 UTC 2018
情報ソース: 2.3. hwclock コマンドの使用 - Red Hat Customer Portal
hwclock
コマンドを用いるとリアルタイムクロックにアクセスできる$ sudo hwclock Tue 28 Aug 2018 07:00:23 PM UTC -0.028421 seconds
hwclock
コマンドによる設定は /etc/adjtime
に保存されるhwclock --set --date "yyyy/mm/dd HH:MM"
で設定可能hwclock --systohc
でシステムクロックをリアルタイムクロックに同期できるhwclock --hctosys
でリアルタイムクロックをシステムクロックに同期できる$ cat /etc/adjtime 0.0 0 0.0 0 UTC
ウェブ界隈でエンジニアとして労働活動に励んでいる @gomi_ningen 個人のブログです