Linux豆知識 186
「/etc/localtime」ファイル
公開日:2016年01月08日
「/etc/localtime」ファイルは、タイムゾーンを設定するファイルです。日本であれば特段の事情がない限り「日本標準時(JST)」を指定することになります。通常は、OSをインストールする際に自動的に設定されますので、意識する機会が少ないでしょう。
「/etc/localtime」ファイルは、バイナリ形式のファイルですので、中を見ても意味はわかりません(中身を参照するにはstringsコマンドを利用することになります)。しかし、タイムゾーンを変更するためには、このファイルを編集する必要があります(そのような機会は滅多にないと思いますが・・・)。その際は、「/usr/share/zoneinfo/」ディレクトリにあるファイルをコピーする必要があります。
○/etc/localtimeのファイル形式を確認
# file /etc/localtime
/etc/localtime: timezone data, version 2, 3 gmt time flags, 3 std
time flags, no leap seconds, 9 transition times, 3 abbreviation
chars
「/usr/share/zoneinfo/」ディレクトリには、各タイムゾーンに対応したファイルが格納されています。lsコマンドで確認してみましょう。
○/usr/share/zoneinfoディレクトリ内の確認
$ ls /usr/share/zoneinfo/
Africa Canada GB Indian Mexico ROK iso3166.tab
America Chile GB-Eire Iran NZ Singapore posix
Antarctica Cuba GMT Israel NZ-CHAT Turkey posixrules
(略)
「Africa」「America」「Asia」などのディレクトリや、「GMT」などのファイルが見えると思います。ディレクトリの下には、その地域のファイルが格納されています。JSTであれば「/usr/share/zoneinfo/Asia/Tokyo」ファイルになります。
「/etc/localtime」には、このファイルの中身をコピーするか、シンボリックリンクを張ることになります。作業例を以下に示します。
○/etc/localtimeの設定例
# date
Wed Dec 12 04:14:10 GMT 2015 ←「GMT」で表示
# cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime ←ファイルコピー
# date
Wed Dec 12 13:15:11 JST 2015 ←「JST」で表示
さて、「/etc/localtime」とは別に、Debian系のLinuxディストリビューションでは「/etc/timezone」ファイルが利用されています。このファイルはテキストファイルで、中身は単純明快です。
○/etc/timezoneの確認
$ cat /etc/timezone
Asia/Tokyo
こちらには、「/usr/share/zoneinfo/」ディレクトリ内の「ファイル名」を指定することで、タイムゾーンを設定することになります。
なお、systemd環境ではtimedatectlコマンドを利用して設定を行うことができますので、こちらもチェックしておきましょう。