[Linux]タイムゾーン(Timezone)をUTCから日本標準時(JST)に変更する

set_timezone_top

この記事には広告を含む場合があります。

記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。

タイムゾーン(Timezone)の初期設定は世界標準時(UTC)

サーバーに OS をインストールした直後は、基本としてタイムゾーンに世界標準時間(UTC)が設定されています。そのため日本向けにサービスを行うときは、日本標準時(JST:時差 +9 時間)に設定を変更する必要があります。

そこで今回はサーバーのタイムゾーンの設定変更をご紹介します。

 

タイムゾーン(Timezone)の設定方法

タイムゾーンの設定方法は使用する LinuxOS ごとに微妙な差異があります。

今回は動作検証として AWS 環境の

  • Amazon Linux 2
  • CentOS 7
  • Ubuntu 18.04

で行ったものを記載しています。

なお動作確認は全て root ユーザーで行っています。root 以外のユーザーで実行する場合はコマンドの先頭に「sudo」コマンドを付与して実行してください。

 

[Amazon Linux]タイムゾーン(Timezone)の設定変更

Amazon Linux は「/etc/localtime」にあるファイルを設定ファイルとしてタイムゾーンをチェックしています。また初期の「/etc/localtime」と同じファイルが「/usr/share/zoneinfo/Etc/UTC」にあることが分かります。

[root@hostname]# cd /etc
[root@hostname etc]# ls -la | grep localtime
-rw-r--r--  1 root root      127 Nov 14 07:25 localtime

[root@hostname]# cat /etc/localtime
TZif2UTCTZif2C
UTC0
[root@hostname]# cat /usr/share/zoneinfo/Etc/UTC
TZif2UTCTZif2C
UTC0

 

実行するサンプルコマンド

「/etc/localtime」と同じファイルが「/usr/share/zoneinfo/Etc/UTC」にあるため、「/etc/localtime」のバックアップを取らずに削除して、日本標準時のファイルへシンボリックリンクを貼る設定を行います。

rm -f /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

サンプルコマンドの実行例

[root@hostname]# date
Sat Dec  1 00:32:56 UTC 2018
[root@hostname]# cd /etc
[root@hostname etc]# ls -la | grep localtime
-rw-r--r--  1 root root      127 Nov 14 07:25 localtime
[root@hostname etc]# rm -f /etc/localtime
[root@hostname etc]# ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
[root@hostname etc]# ls -la | grep localtime
lrwxrwxrwx  1 root root       30 Dec  1 09:32 localtime -> /usr/share/zoneinfo/Asia/Tokyo
[root@hostname etc]# date
Sat Dec  1 09:33:42 JST 2018

 

[CentOS]タイムゾーン(Timezone)の設定変更

CentOS は timedatectl コマンドでタイムゾーンの設定を行います。操作することは無いですが、タイムゾーン設定ファイルは「/usr/share/zoneinfo/」に設置されています。

[root@hostname]# cat /usr/share/zoneinfo/UTC
TZif2UTCTZif2UTC
UTC0
[root@hostname]# cat /usr/share/zoneinfo/Asia/Tokyo
TZipKۭ~DTJSTTZif2       pK-MTJDTJST
JST-9

 

実行するサンプルコマンド

timedatectl set-timezone Asia/Tokyo

サンプルコマンドの実行例

[root@hostname]# date
Sat Dec  1 00:44:53 UTC 2018
[root@hostname]# timedatectl set-timezone Asia/Tokyo
[root@hostname]# date
Sat Dec  1 09:44:58 JST 2018

 

[Ubuntu]タイムゾーン(Timezone)の設定変更

Ubuntu は「/etc/localtime」に「/usr/share/zoneinfo/Etc/UTC」へのシンボリックが設定されています。そこでシンボリックリンクを日本標準時への貼りなおし設定を行います。

root@hostname:# cd /etc
root@hostname:/etc# ls -la | grep time
lrwxrwxrwx  1 root root         27 Nov 28 12:11 localtime -> /usr/share/zoneinfo/Etc/UTC

root@hostname:# cat /usr/share/zoneinfo/Etc/UTC
TZif2UTCTZif2C
UTC0
root@hostname:# cat /usr/share/zoneinfo/Asia/Tokyo
TZif2   >pMTJDTJSTTZif2
¤ppY;MTJDTJST
JST-9

 

実行するサンプルコマンド

ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

使用している ln コマンドのオプションの意味は、下記に記載します。

オプション オプション(長い名称) 説明
-s –symbolic シンボリックリンクを作成する
-f –force 同じ名前のファイルが存在しても強制的に上書きする

サンプルコマンドの実行例

root@hostname:# date
Fri Nov 30 12:35:01 UTC 2018
root@hostname:/etc# ls -la | grep time
lrwxrwxrwx  1 root root         27 Nov 29 12:11 localtime -> /usr/share/zoneinfo/Etc/UTC
-rw-r--r--  1 root root          8 Nov 28 12:11 timezone
root@hostname:/etc#
root@hostname:/etc# ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
root@hostname:/etc#
root@hostname:/etc# ls -la | grep time
lrwxrwxrwx  1 root root         30 Nov 29 21:38 localtime -> /usr/share/zoneinfo/Asia/Tokyo
-rw-r--r--  1 root root          8 Nov 28 21:11 timezone
root@hostname:/etc# date
Fri Nov 30 21:45:43 JST 2018

 

さいごに

AWS にてタイムゾーン(Timezone)を日本標準時に変更する方法をご紹介しました。

「さくらのVPS」など日本向けのクラウドサービスでは、日本標準時(JST:時差 +9 時間)が初期設定しているサービスもありますので、設定変更を行う前に必ずサーバーの状況を確認してください。

 

Linuxの知識については下記の本も参考になるので、スキルアップにお役立てください。

created by Rinker
三宅 英明 (著)、大角 祐介 (著)
ページ数: 440ページ
出版社:SBクリエイティブ
発売日:2015/06/06

出典:amazon