[AWS] Amazon Linux 2 + 旧版 タイムゾーンを変更
Amazon Linux 2 および Amazon Linux で、タイムゾーンをデフォルトの UTC からカナダ・バンクーバー時間( PDT )と、日本に変更する方法。
2018 年 6 月ごろに、 Amazon Linux 2 の正式版が一般公開された。旧版( Amazon Linux )はベースがRedhat6系だったが、Redhat7系に変わり、タイムゾーンを設定するコマンドも変わったので新たに追記( 2019/08 )。
バージョン:Amazon Linux AMI release 2018.03 , Amazon Linux release 2
Contents
前準備
現在時刻を確認
どっちでも使える。
$ date
Wed Apr 3 09:23:06 JST 2019
現在のタイムゾーンを確認する Amazon Linux 2 で使えるコマンド
$ timedatectl
Local time: Thu 2019-08-15 22:52:03 UTC
Universal time: Thu 2019-08-15 22:52:03 UTC
RTC time: Thu 2019-08-15 22:52:03
Time zone: n/a (UTC, +0000)
NTP enabled: yes
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
変更したいタイムゾーンの確認
Amazon Linux 2
タイムゾーン一覧を表示するコマンド。
$ timedatectl list-timezones
...
America/Toronto
America/Tortola
America/Vancouver
America/Whitehorse
America/Winnipeg
America/Yakutat
America/Yellowknife
...
いっぱい出てくるから、キーボードの「下」押して必要なタイムゾーンを探す。
一覧の表示を終了するには、 q
を押す。
Amazon Linux (旧版)
/usr/share/zoneinfo ディレクトリから、変更したいタイムゾーンのファイルを確認。
$ ls /usr/share/zoneinfo
Africa Canada GB Indian Mexico ROK iso3166.tab
America Chile GB-Eire Iran NZ Singapore leapseconds
Antarctica Cuba GMT Israel NZ-CHAT Turkey posix
Arctic EET GMT+0 Jamaica Navajo UCT posixrules
Asia EST GMT-0 Japan PRC US right
...
上記一覧で希望するタイムゾーンがフォルダだった場合、その配下のファイルを確認する。
$ ls /usr/share/zoneinfo/Canada
Atlantic Eastern Newfoundland Saskatchewan
Central Mountain Pacific Yukon
* バンクーバーは「 Pacific 」ファイル。
タイムゾーンを変更する
Amazon Linux 2
Amazon Linux 2 では、 timedatectl
コマンドを使う。
$ sudo timedatectl set-timezone America/Vancouver
日本時間に変更するときは、
$ sudo timedatectl set-timezone Asia/Tokyo
Amazon Linux (旧版)
/etc/sysconfig/clock ファイルを変更
ZONE を、上記で確認したタイムゾーンファイル名に変更
$ sudo vi /etc/sysconfig/clock
#ZONE="UTC"
ZONE="Canada/Pacific"
UTC=true
日本時間( JST )に変更する場合は、
#ZONE="UTC"
ZONE="Asia/Tokyo"
UTC=true
AWSの公式ドキュメントに下記注意書きあり
注記
UTC=true エントリを別の値に変更しないでください。このエントリは、ハードウェアクロックに使用されるため、インスタンスで別のタイムゾーンを設定する場合は調整する必要はありません。
シンボリックリンクの作成
$ sudo ln -sf /usr/share/zoneinfo/Canada/Pacific /etc/localtime
日本時間( JST )に変更する場合は、
$ sudo ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
ln
コマンドは、ディレクトリやファイルへのリンクを作成するコマンドで、オプションに -s
をつけるとシンボリックリンク、オプション無しだとハードリンクが作成される。
オプション -f
は、同じリンク名がすでに作成されている場合、上書きされる
シンボリックリンク作成時、間違って再度一回実行したらうまくいかなった
〜/Canada/Pacificと〜/Pacific は同じファイルですという旨のエラーが出たので、/etc/localtime を削除してから、
〜/Canada/Pacificと〜/Pacific は同じファイルですという旨のエラーが出たので、/etc/localtime を削除してから、
ln
コマンドを実行してうまくいった
# 削除コマンド
$ sudo rm /etc/localtime
時間が変わったことを確認
$ date
Tue Apr 2 17:56:03 PDT 2019
reboot
reboot してもタイムゾーンが変わらないことを確認する
$ sudo reboot
$ date
Tue Apr 2 17:58:59 PDT 2019
reboot できない場合の注意点
タイムゾーン変更後、再起動ができない場合には、cron とsyslog ( rsyslog ) を再起動する再起動しないと、新しいタイムゾーンが適用されない
$ sudo service crond restart
$ sudo service rsyslog restart