LinuxLinux [リナックス / ライナックス]オープンソースのOSカーネル(主にsystemdを採用しているシステム)で、システムの日時(時刻や日付)、タイムゾーン、NTP(ネットワークタイムプロトコル)による時刻同期の設定・確認を行うためのコマンドが timedatectl です。
date や hwclock などで個別に確認・操作していたシステム時刻やRTC、タイムゾーン、時刻同期に関する設定を、systemd環境で統合的に確認・管理できるのが特徴です(※date や hwclock コマンド自体が廃止されたわけではありません)。本記事では、timedatectl コマンドの基本的な使い方をわかりやすく解説します。
timedatectlコマンドとは?
timedatectl コマンドは、システムの日付や時刻、タイムゾーンなどを制御・確認するためのコマンドです。
近年の主流である systemd が動作しているLinuxディストリビューション(UbuntuUbuntu [ウブントゥ]人気のLinuxディストリビューション、CentOSCentOS [セントオーエス]Red Hat Enterprise Linux互換の安定したLinuxディストリビューション 7以降、DebianDebian [デビアン]コミュニティ主導で開発される安定性の高いLinuxディストリビューション、RHELなど)で標準的に利用できます。
現在のシステム時刻(ローカルタイム、UTC)やRTC(ハードウェアクロック)の時刻を一覧表示したり、NTP同期が有効になっているかを簡単に確認したりできます。
timedatectlコマンドの基本的な使い方
単に timedatectl コマンドをオプションなしで実行すると、現在のシステムの日時やタイムゾーンの設定状況が表示されます。
timedatectl Local time: 土 2026-08-15 15:30:00 JST Universal time: 土 2026-08-15 06:30:00 UTC RTC time: 土 2026-08-15 06:30:00 Time zone: Asia/Tokyo (JST, +0900)System clock synchronized: yes NTP service: active RTC in local TZ: no※補足(曜日の表示について)
出力例の「土 2026-08-15…」という曜日部分は、システムのロケール(言語設定)に依存します。日本語環境(ja_JP.UTF-8)では日本語で表示されますが、英語環境(LANG=Cなど)ではSat 2026-08-15...のように表示されるため、環境によって見え方が異なります。
【出力結果の見方】
- Local time: 現在設定されているタイムゾーン(ローカル)での日時
- Universal time: 協定世界時(UTC)での日時
- RTC time: ハードウェアクロック(RTC: Real Time Clock)の日時
- Time zone: 現在設定されているタイムゾーン
- System clock synchronized: システムクロックが時刻同期済みと認識されているかどうか(
yes/no) - NTP service: ネットワーク時刻同期サービスが有効・起動しているかどうか(
active/inactive)。activeだからといって、必ずしも時刻同期が完了しているとは限りません。
よく使う設定コマンド
※日時の変更やタイムゾーンの設定変更には、通常、管理者権限が必要です。この記事では sudo を使用して実行します。
1. タイムゾーンを変更する
現在のタイムゾーンを確認・変更したい場合によく使われます。
設定可能なタイムゾーンの一覧を表示する
timedatectl list-timezones出力が長いため、grep と組み合わせて timedatectl list-timezones | grep Tokyo のように絞り込むと便利です。
タイムゾーンを設定する(例:日本時間(JST)にする)
sudo timedatectl set-timezone Asia/Tokyo2. システム時刻を手動で設定する
※注意(手動設定時の必須手順)
ネットワーク時刻同期サービスが有効(active)な状態のまま手動で時刻を設定しようとすると、Failed to set time: Automatic time synchronization is enabledなどのエラーが発生して設定に失敗します。 そのため、手動で時刻を設定する際は、必ず事前に自動同期を無効化(sudo timedatectl set-ntp no)してから実行してください。設定完了後に再び有効化します。
日付と時刻を同時に設定する(例:2026年8月15日 10時00分00秒)
sudo timedatectl set-time "2026-08-15 10:00:00"時刻のみを設定する
sudo timedatectl set-time "10:00:00"3. NTPによる時刻同期を有効・無効にする
現代のサーバーやPCでは、ネットワーク経由で正確な時刻を取得する NTP同期 を有効にしておくのが一般的です。
※補足(NTPサービスの実体について)
set-ntp yes/noは特定のNTPクライアントそのものを直接操作するコマンドではなく、systemdが認識しているネットワーク時刻同期サービス(systemd-timesyncdや環境によってはchronydなど)を有効化・開始、または無効化・停止するためのコマンドです。そのため、別のNTPクライアントを独自に利用している環境では、このコマンドが意図通りに効かない、あるいは意味が変わるケースがある点にご注意ください。
ネットワーク時刻同期サービスを有効化・開始する
sudo timedatectl set-ntp yes有効にした後、timedatectl コマンドを実行し、NTP service: active になっていることを確認します。その後、実際に時刻同期が完了すると System clock synchronized: yes になります。
💡 さらに詳細な同期状態を確認するには?
systemd-timesyncdを使用している環境では、以下のコマンドで同期先のNTPサーバーやオフセットなどの詳細情報を確認できます。Terminal window timedatectl timesync-status
ネットワーク時刻同期サービスを無効化・停止する
sudo timedatectl set-ntp noテスト環境で意図的に過去や未来の時間を設定したい場合は、一時的に no に設定してから set-time コマンドを使用します。
まとめ
timedatectl コマンドのポイントは以下の通りです。
- システムの日時、タイムゾーン、NTP同期の状況をまとめて確認・設定できるコマンド。
- systemd環境のLinuxで標準的に使用可能。
sudo timedatectl set-timezone Asia/Tokyoでタイムゾーンを日本時間に変更できる。sudo timedatectl set-ntp yesでネットワーク時刻同期サービスを有効化・開始できる。
サーバー構築の初期設定時などによく利用するコマンドなので、基本的な使い方をぜひ覚えておきましょう。
以上で本記事の解説を終わります。
よいITライフを!
人気記事
- 1
- 2
- 3
- 4
- 5
Rocky Linux対応。実際にWebサーバーを公開するまでのプロセスを体験できる、最も確実で実践的なガイドブックです。