LoginSignup
0
0

More than 3 years have passed since last update.

AWSのEC2(CentOS 7)でTimezoneの変更でミスった・・・

Posted at

事象

CentOS7なEC2のサーバ上のPHPで、TimeZoneにUTCを指定して時刻を取得したのにJSTな時刻が取得された。

なお、OSのタイムゾーンは一応JSTです。

原因

タイムゾーンがおかしなことになってました。

 $ timedatectl

      Local time: Wed 2020-05-13 14:14:59 JST
  Universal time: Wed 2020-05-13 05:14:59 UTC
        RTC time: Wed 2020-05-13 05:13:52
       Time zone: UTC (JST, +0900)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a

って感じで、TimezoneがUTC (JST, +0900)と不思議な値になってました。

どうしてこうなった

EC2は初期ではタイムゾーンがUTCになってます。
これをJSTに変更する方法はぐぐるといっぱい出てきますが、大きく2種類出てきます。

  1. /etc/localtimeを変更する方法
  2. timedatectlを使う方法

CentOS7の場合は、「timedatectlを使う方法」なんですが、「/etc/localtimeを変更する方法」をやってしまいました。

やったこと

  1. sudo cp -p /usr/share/zoneinfo/Japan /etc/localtime
  2. vi /etc/sysconfig/clock → そんなファイルないぞ? ここで気づくべきでした(まぁ、ここできづいても遅いんですが・・・)

しかし、2をやらすにとりあえず、dateしてみると、JSTになってるからまぁいいかってことでタイムゾーンの変更完了!ってしちゃいました。

なにが起きたのか

実は、 /ect/localtime が /usr/share/zoneinfo/UTC のシンボリックリンクになってました。

つまり、

sudo cp -p /usr/share/zoneinfo/Japan /etc/localtime

で/usr/share/zoneinfo/UTCが/usr/share/zoneinfo/Japanで上書きされてしまいました。
結果、UTCの内容がJSTで+0900になってしまったということでした。

さらに、UCTとかUniversalとかZuluとかがUTCのハードリンクだったらしく、これらもJSTになっちゃってました・・・

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0