Bashプログラミング
 Computer >> コンピューター >  >> プログラミング >> Bashプログラミング

Linuxのタイムゾーンを確認・変更する方法|date・timedatectlコマンド徹底解説

Linuxサーバーにおける時刻とタイムゾーンの管理は、システム運用において非常に重要な要素です。特に本番環境のサーバーでは、ログの時刻記録やcronなどのスケジュール処理が正確なタイムゾーン設定に依存しているため、常に正しい状態を把握しておくことが欠かせません。

本記事では、Linuxシステムの現在のタイムゾーンを確認するための基本的な方法から、実際にタイムゾーンを変更する手順まで、初心者の方にもわかりやすく解説します。

1. dateコマンドでタイムゾーンを確認する

最も伝統的かつシンプルな方法は、dateコマンドを使うことです。オプションなしで実行すると、現在の日付・時刻とともにタイムゾーンが表示されます。

$ date

また、フォーマット指定子を使えば、タイムゾーン情報だけを抽出することもできます。%Zはアルファベット表記のタイムゾーン名(JSTなど)、%zはUTCからのオフセット(+0900など)を出力します。

$ date +"%Z %z"
Linuxのタイムゾーンを確認・変更する方法|date・timedatectlコマンド徹底解説

ヒント: dateコマンドには多数の出力フォーマットが用意されています。詳細はmanページを参照してください。

$ man date

2. timedatectlコマンドでタイムゾーンを確認する

systemdを採用しているモダンなLinuxディストリビューションでは、timedatectlコマンドが便利です。オプションを付けずに実行すると、NTP同期状態やタイムゾーンを含むシステム全体の時刻情報の概要が表示されます。

$ timedatectl

タイムゾーンの行だけを表示したい場合は、パイプ(|)とgrepコマンドを組み合わせてフィルタリングしましょう。

$ timedatectl | grep "Time zone"
Linuxのタイムゾーンを確認・変更する方法|date・timedatectlコマンド徹底解説

なお、日本語ロケールの環境では「Time zone」ではなく「タイムゾーン」と表示される場合がある点にも注意してください。

3. /etc/timezoneファイルを確認する(Debian/Ubuntu系)

Debianおよびその派生ディストリビューション(Ubuntuなど)では、/etc/timezoneファイルにタイムゾーン名が保存されています。catコマンドで内容を表示すれば、簡単に確認できます。

$ cat /etc/timezone
Linuxのタイムゾーンを確認・変更する方法|date・timedatectlコマンド徹底解説

RHEL/CentOS/Fedoraの場合の注意点

RHEL/CentOS 7Fedora 22〜25などのディストリビューションでは、/etc/localtime/usr/share/zoneinfo/配下のタイムゾーンファイルへのシンボリックリンクになっています。このリンク先を確認することでも、現在のタイムゾーンを把握できます。

$ ls -l /etc/localtime

もちろん、datetimedatectlコマンドでも現在の時刻とタイムゾーンを表示できます。

4. タイムゾーンを変更する方法

タイムゾーンを変更するには、/etc/localtimeのシンボリックリンクを、/usr/share/zoneinfo/以下の目的のタイムゾーンファイルに張り直します。

$ sudo ln -sf /usr/share/zoneinfo/Africa/Nairobi /etc/localtime

各オプションの意味は次のとおりです。

  • -s: シンボリックリンクを作成する(指定しない場合はハードリンクが作成される)
  • -f: 既存のリンク先ファイル(/etc/localtime)が存在する場合に削除して上書きする

上記の例では、タイムゾーンをAfrica/Nairobi(東アフリカ時間)に変更しています。日本時間に設定したい場合は、次のように実行します。

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

変更後は、dateまたはtimedatectlコマンドを実行し、新しいタイムゾーンが正しく反映されていることを必ず確認しましょう。

まとめ

Linuxのタイムゾーン確認には、dateコマンド、timedatectlコマンド、/etc/timezoneファイルの参照など複数の方法があり、いずれも数秒で実行できる簡単な操作です。サーバー運用でのトラブルを防ぐためにも、日頃からシステムの時刻設定を把握しておくことをおすすめします。

  1. パスワードを指定してLinuxユーザーを自動作成する方法

    パスワード付きでLinuxユーザーを自動作成するには バッチ処理(完全自動)でLinuxのユーザーアカウントをまとめて作成しなければならない場面は少なくありません。しかし、「新しいユーザーのパスワードを手動入力せずに設定するにはどうすればいいのか」と悩む初心者の方は多いようです。 実は、useraddコマンドはパスワードを入力パラメータとして受け取ることができます。ただし、そのパスワードは暗号化されている必要がある点に注意してください。 つまり、パスワード付きでLinuxユーザーアカウントを作成するには、次のコマンドが役立ちます。 useradd -m -p 暗号化済みパスワード ユーザー名

  2. Linuxシェルスクリプト入門:変数の基本を徹底解説(第9回)

    これまでLinuxシェルスクリプティングに関する連載記事をお届けしてきましたが、当時は多くの方にご好評いただき、今でも十分に役立つ内容となっています。ここでは、変数の仕組み、実行方法、そしてシェルスクリプトでの実装について詳しく見ていきます。 コマンド出力の保存 コマンドの出力は標準出力やファイルにリダイレクトできるだけでなく、変数に格納することも可能です。コマンドの出力が大きすぎて画面に収まらない場合は、ファイルまたは変数に出力を保存するしかありません。変数に出力を保存する利点の一つは、確認速度が速いことです。変数はメモリ上に保存されるため、ファイルからの読み出しと比べて高速に処理されます。