[AWS] Amazon linux タイムゾーンを変更

2019-04-04開発環境系AWS, Linux

AmazonLinuxで、タイムゾーンをデフォルトのUTCからカナダ・バンクーバー時間(PDT)に変更する。
バージョン:Amazon Linux AMI release 2018.03

スポンサーリンク

前準備

現在時刻を確認

$ date
Wed Apr  3 09:23:06 JST 2019

変更したいタイムゾーンの確認

/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」ファイル

/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 を削除してから、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

Posted by Agopeanuts