特にAmazonLinuxに限った話ではないが…。AmazonLinuxをそのまま使うと、タイムゾーンがUTCになっているので、JST(日本時間)にしますよと。まぁ、ここらへんはEC2定番Tipsなわけなんだけど、そのままだと、crondにはタイムゾーン反映されてませんから注意。これもありがち。
$ date
2014年 7月 16日 水曜日 16:40:28 UTC
$ sudo ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
$ date
2014年 7月 17日 木曜日 01:40:28 JST
/etc/localtimeにシンボリックリンクをはるっていうね。
でもこれだけだと、yum updateなどをすると再度タイムゾーンが戻ってしまう。なので/etc/sysconfig/clockを編集しますよと。
ZONE="Asia/Tokyo"
UTC=false
で、問題はここから。crondにもタイムゾーン変更を反映するには、crondを再起動すればOKみたいなブログ記事が沢山あるけど、なぜか反映されず…。
$ sudo service crond restart
Amazonのドキュメントを読むと、素直にOS再起動が必要っぽい…。
$ sudo reboot
というわけで、素直に再起動したら、crondにもちゃんと反映されていた。うーん、なんでだろ。なんか環境変わったのかな。
参考 : http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/set-time.html