対象OS
設定ファイル周りについては、Amazon Linux AMI や CentOS6系以前のお話
ただし、クロックそのもの話は各Linuxでもだいたいおんなじなはず
クロック周りのはなし
時計。Linuxは2種類のクロックをもつ
- ハードウェアクロック
- システムクロック
ハードウェアクロック
RTC(リアルタイムクロック)とも呼ばれる。マザーボードが持つ物理的な時計
ボタン電池で電力供給され、電源OFF時にも時刻が維持され続ける
システムクロック
OSのソフトウェアで管理するクロック
OS起動時に、ハードウェアクロックの値を元に設定される
1970年01月01日00時00分00秒 からの経過秒数(UNIX時間) の形式で管理されている
インターバルタイマー
マザーボードの機能の1つ。定期的に割り込みをかけて、システムクロックの時刻を進める
タイムゾーン周りの話
用語
- UTC: 世界標準時
- タイムゾーン: 地球上で同一の標準時を採用している地域の集合。UTC±時差 で表記される。日本標準時ならば UTC+9
- ローカルタイム: タイムゾーンで示される現地時刻
Linuxでのタイムゾーンの設定方法
/usr/share/zoneinfo
に各タイムゾーンの設定ファイルが格納されている
- 東京ならば、
/usr/share/zoneinfo/Asia/Tokyo
/etc/localtime
に上記のタイムゾーンの設定ファイルと同様のものをおけば、それがシステムのタイムゾーンとなる
ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
date
コマンドなどの時刻を表示するコマンドは、/etc/localtime
の設定を見て、システムクロックからローカルタイムを計算する
ハードウェアクロックのタイムゾーン
ハードウェアクロック自体はタイムゾーンを持たないが、ハードウェアクロックの値の解釈を設定することが可能
/etc/sysconfig/clock
で設定可能
ZONE="Asia/Tokyo" UTC=true
- UTC: ハードウェアクロックの値の解釈
true
: UTCとして解釈するtrue
: ローカルタイムとして解釈する
- ZONE:
/etc/localtime
の参照元を設定
マシンを再起動したり、glibcのupdateなどで /etc/localtime
の参照元は、ZONEで指定した値に置きかわる