Categories: linux

timedatectlコマンド徹底解説!Linuxでの時刻・タイムゾーン設定の基本と活用方法

Linuxサーバーやデスクトップ環境を扱ううえで、正確な時刻設定は非常に重要です。時刻がずれているとログの解析が困難になったり、スケジュールされたタスクが意図通りに動作しなかったりと、思わぬトラブルにつながります。
そこで活躍するのが「timedatectl」コマンドです。これは、Linuxで時刻やタイムゾーンの設定・確認を行うための強力なツールであり、特にsystemdを使用しているディストリビューションでは標準的に利用されます。
この記事では、「timedatectl」コマンドの基本的な使い方から、タイムゾーンの変更方法、NTPの設定まで、実践的な内容をわかりやすく解説します。


timedatectlとは?基本的な概要

timedatectlは、systemdに付属する時刻管理ツールです。以下のような操作を行うことができます。

  • 現在のシステム時刻とタイムゾーンの確認
  • 時刻や日付の手動設定
  • NTP(Network Time Protocol)の有効・無効化
  • タイムゾーンの変更

このコマンドは、systemdを採用しているディストリビューション(Ubuntu、CentOS、RockyLinux、Debianなど)で使用可能です。timedatectlroot権限が必要な操作も多いため、sudoを使って実行するのが一般的です。


現在の時刻・タイムゾーン情報を確認する

まずは、システムの現在の状態を確認してみましょう。

timedatectl

このコマンドを実行すると、以下のような情報が表示されます。

               Local time: Sat 2025-04-06 10:15:42 JST
Universal time: Sat 2025-04-06 01:15:42 UTC
RTC time: Sat 2025-04-06 01:15:42
Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no

各項目の意味は次の通りです。

  • Local time:現在のローカル時間
  • Universal time:UTC(協定世界時)
  • RTC time:ハードウェアクロックの時間
  • Time zone:設定されているタイムゾーン
  • System clock synchronized:NTPによって時刻同期がされているか
  • NTP service:NTPサービスの状態(active/inactive)
  • RTC in local TZ:RTCをローカルタイムとして使用しているかどうか

タイムゾーンの設定と変更方法

利用可能なタイムゾーン一覧の確認

システムで利用可能なタイムゾーンを一覧表示するには以下のコマンドを使います。

timedatectl list-timezones

出力例:

Africa/Abidjan
America/New_York
Asia/Tokyo
Europe/London
...

この一覧から目的のタイムゾーンを選択します。

タイムゾーンの変更

タイムゾーンを「Asia/Tokyo」に変更するには、以下のように実行します。

sudo timedatectl set-timezone Asia/Tokyo

変更後に再度timedatectlを実行すると、設定が反映されていることが確認できます。


システム時刻の手動設定

サーバーがインターネットに接続されていない、あるいは一時的にNTPを無効にして手動で時刻を設定したい場合は、次のように実行します。

sudo timedatectl set-time '2025-04-06 10:30:00'

形式は「YYYY-MM-DD HH:MM:SS」で、24時間制です。
注意: NTPが有効になっている場合は手動での時刻変更が無効化されているため、以下のようにNTPを無効にしてから設定します。

sudo timedatectl set-ntp false
sudo timedatectl set-time '2025-04-06 10:30:00'

NTP(時刻同期)の設定

時刻を自動で正確に保つためには、NTPの利用が欠かせません。timedatectlを使えば、NTPの有効化・無効化も簡単です。

NTPを有効にする

sudo timedatectl set-ntp true

NTPを無効にする

sudo timedatectl set-ntp false

NTPの状態を確認する

timedatectlコマンドの出力中の「NTP service」や「System clock synchronized」を確認することで、現在の同期状況を把握できます。


RTC(ハードウェアクロック)とシステムクロックの関係

Linuxには2種類の時計が存在します。

  • RTC(Real-Time Clock):ハードウェアに搭載されたクロック
  • System Clock:OSが起動後に管理する時刻

通常、OS起動時にRTCから時刻が読み込まれ、以降はSystem Clockが主導で時刻を管理します。RTCの時刻はOSがシャットダウンされるまで更新されません。

RTCをローカルタイムとして使う設定

sudo timedatectl set-local-rtc 1

逆にUTCとして使う場合:

sudo timedatectl set-local-rtc 0

RTCをローカルタイムとして使うのはWindowsとのデュアルブート環境でのみ推奨されます。


よくあるトラブルと対処法

タイムゾーン変更後に反映されない

timedatectl set-timezoneを実行したにも関わらずタイムゾーンが変わっていないように見える場合、次の点を確認しましょう。

  • 設定後にtimedatectlで出力を確認したか?
  • アプリケーションが独自のタイムゾーン設定を持っていないか?
  • ログファイル等の時刻はUTCで記録されていないか?

NTPが同期しない

ネットワーク接続が遮断されていたり、systemd-timesyncdサービスが起動していない可能性があります。以下で確認できます。

systemctl status systemd-timesyncd

必要に応じてサービスを再起動:

sudo systemctl restart systemd-timesyncd

まとめ

timedatectlコマンドは、Linuxにおける時刻・タイムゾーン管理の中核を担う非常に便利なツールです。特にサーバー運用や開発環境において、正確な時刻はログの整合性やジョブスケジューリングに直結する重要な要素です。

基本的な時刻表示からNTPの設定、タイムゾーンの変更まで、この記事で紹介した内容を活用することで、より安定したシステム運用が可能になります。
Linuxを扱うすべてのユーザーにとって、timedatectlの基本的な理解と活用スキルは、習得しておいて損はありません。

upandup

Web制作の記事を中心に、暮らし、ビジネスに役立つ情報を発信します。 アフィリエイトにも参加しています。よろしくお願いいたします。