はじめに
新人の時から所属している現場は、
そろそろ15年くらいの大規模システムです。
また自分自身インフラチームではないのもあり、
サーバ構築とか特に環境設定を変更する機会はありませんでした。
そして先月末(2024/5)、初めてAWS EC2サービスを使ってサーバ立ち上げたのですが、
途中JSTになっていないことに気づきました。
色々ググってJSTへ設定が変更できたので、その手順を残します。
1) 必要なsetting fileの在処確認
#setting file
ls -la /etc/localtime
ls -la /etc/sysconfig/clock
ls -la /usr/share/zoneinfo/Asia/Tokyo
ここで勘づいて、確認したわかったこと!
/usr/share/zoneinfo 下位には、
地域ごとディレクトリー、
さらにその下位に地域ごと標準時刻ファイルが存在しています。
2) バックアップ
#backup
cp -ip /etc/localtime /etc/localtime_bk
#backup後、比較元と差分がないことを確認
diff /etc/localtime /etc/localtime_bk
シクったら怖いですからね。
(これは職業病みたいなもんかもしれないです)
バックアップは基本中の基本。
3) localtime自体はいじらない。リンク機能を生かそう!
#標準時間(東京、JST)ファイルが、localtimeとして読み込まれるリンク付け
ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
これでできた!と思ったら・・・
サーバ再起動したらJSTからGMTになってしまうので、
さらに設定が必要でした。
4) 再起動しても、標準時刻は変更したままにする
#No turn back to GMTorUTC when reboot
ls -la /etc/sysconfig/clock
vi /etc/sysconfig/clock #iを押したらinsertモードになります!
-> ZONE="Asia/Tokyo" #に変更する
-> UTC=false #に変更する。
私が利用したAWSインスタンスは、ap2-southeast-2 でしたが
それと関係なく最初はUTCで設定されているようです。
ちなみにリンク付けのコマンドは、なかなか使ったことがありません。
(インフラだったら使いますかね?)今回初めて試したコマンドでした。
ln #:link コマンド
-s:symbolic link
-f:force #強制的にリンク付ける
(例) Bファイルを実行したら、Aファイルを読み込むことになります。
ln -sf A B