0

導入したてのLinuxホストでタイムゾーンが日本標準時刻(JST)でない時の対処方法

AWSにしろVagrantにしろ、環境構築した際に、表示されるdateコマンドの出力時刻がおかしい場合があります。

ntpdがおかしいかと、以前ハマった経緯があるので、備忘録。
TimezoneがUTCになっている場合は、ホスト側で完結です。

$ date
2015年  3月 22日 日曜日 09:23:00 UTC ←★ 現在の時刻と違う。UTC になっている!

❏ 原因

タイムゾーンがUTC(Coordinated Universal Time:全世界で時刻を記録する際に使われる公式な時刻「 協定世界時 」)となっている
ちなみに日本標準時刻(JST)より 9時間遅れています。

❏ 対策

タイムゾーンをJST(Japan Standard Time : 日本標準時)へ変更し日本時刻へ合わせます。
タイムゾーンの設定はこの設定ファイルの中身を編集するのではなく、
OSにもともと /usr/share/zoneinfo/Japan という日本のタイムゾーンの設定が記述されてある置き換えのためのファイルが存在する為、/etc/localtime を /usr/share/zoneinfo/Japan で上書き、ないしシンボリックを貼るだけでOKです。

① 不測の事態に備え、バックアップ取得

$ cp -ai /etc/localtime /etc/localtime.`date +%F`

② 現在の設定削除

$ sudo rm /etc/localtime

③ 希望のタイムゾーンにシンボリックを貼る。

$ sudo ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime  

< 参考:timezoneファイルは下記の通り OSにて管理 されています。 >
$ ls /usr/share/zoneinfo/
Africa      Atlantic   Canada  EST5EDT  GB       GMT0       Indian   Kwajalein  Mexico   PST8PDT   ROK        UTC        iso3166.tab
America     Australia  Chile   Egypt    GB-Eire  Greenwich  Iran     Libya      NZ       Pacific   Singapore  Universal  posix
Antarctica  Brazil     Cuba    Eire     GMT      HST        Israel   MET        NZ-CHAT  Poland    Turkey     W-SU       posixrules
Arctic      CET        EET     Etc      GMT+0    Hongkong   Jamaica  MST        Navajo   Portugal  UCT        WET        right
Asia        CST6CDT    EST     Europe   GMT-0    Iceland    Japan    MST7MDT    PRC      ROC       US         Zulu       zone.tab

④ /etc/sysconfig/clock にシステムクロックの設定があります。この設定も UTC になっていますので、
日本の時刻 Asia/Tokyo に変更。Backupは然りで。

$ sudo cp -ai /etc/sysconfig/clock /etc/sysconfig/clock.`date +%F`  # 不測の事態に備え、バックアップ取得
$ sudo vi /etc/sysconfig/clock
ZONE="UTC"
  ↓
ZONE="Asia/Tokyo"

$ date
2015年  3月 22日 日曜日 18:41:53 JST  # JSTとなっている。時間も治りました。

以上です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です