timedatectlコマンドでLinuxのタイムゾーンと時刻を設定する方法|NTP有効化から確認手順まで

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Linuxtips > timedatectlコマンドでLinuxのタイムゾーンと時刻を設定する方法|NTP有効化から確認手順まで
「サーバーのログが9時間ズレていた……」「time zoneを変えたはずなのに反映されない」
こんな経験はありませんか。

Linuxサーバーでは、タイムゾーンや時刻の設定ミスがログ解析の混乱やジョブのスケジュールズレに直結します。
この記事では、timedatectlコマンドを使ったタイムゾーン変更・NTP有効化・時刻確認の手順を、RHEL 9.4 / Rocky Linux 9.4 / Ubuntu 24.04 LTSで動作確認済みの実例を交えて解説します。

この記事のポイント

・timedatectl set-timezone でタイムゾーンをJSTに変更できる
・timedatectl set-ntp true でNTP自動同期を有効化できる
・timedatectl status で現在の時刻・NTP状態をまとめて確認できる
・タイムゾーン変更後はcron・ログに即時反映されることを確認する


「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

timedatectlとは何か

timedatectlは、systemdが提供するシステム時刻・タイムゾーン・NTP設定を一元管理するコマンドです。
古くはtzselectntpdateを使っていましたが、RHEL 7以降のsystemd環境ではtimedatectlが標準となっています。

Linuxの時刻には2種類があります。

RTC(リアルタイムクロック):マザーボードのハードウェア時計。電源オフでも保持される
システムクロック:OS起動時にRTCから読み取り、NTPで補正する時刻

timedatectlはシステムクロックとタイムゾーンを管理します。

timedatectl statusで現在の状態を確認する

まず現在の設定を確認しましょう。

# 現在の時刻・タイムゾーン・NTP状態を確認 timedatectl status

実際のサーバーでの出力例です。

Local time: Sun 2026-05-03 10:45:22 JST Universal time: Sun 2026-05-03 01:45:22 UTC RTC time: Sun 2026-05-03 01:45:23 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をローカル時刻で保持しているか(通常はno推奨)

タイムゾーンを変更する

1. 利用可能なタイムゾーン一覧を確認する

# 全タイムゾーン一覧を表示 timedatectl list-timezones # Asiaで絞り込む例 timedatectl list-timezones | grep Asia

出力例(一部):

Asia/Tokyo Asia/Seoul Asia/Shanghai Asia/Hong_Kong

2. タイムゾーンをAsia/Tokyoに設定する

# sudo権限が必要 sudo timedatectl set-timezone Asia/Tokyo # 変更後に確認 timedatectl status

コマンド実行後の確認例:

Local time: Sun 2026-05-03 10:45:35 JST Universal time: Sun 2026-05-03 01:45:35 UTC RTC time: Sun 2026-05-03 01:45:36 Time zone: Asia/Tokyo (JST, +0900) System clock synchronized: yes NTP service: active RTC in local TZ: no

「Time zone: Asia/Tokyo (JST, +0900)」と表示されれば設定完了です。

変更は即時に反映され、再起動不要です。ただし、すでに起動中のプロセス(cronデーモンなど)はシグナルで再読み込みが必要な場合があります。

3. タイムゾーン変更後にcronが正しく動作するか確認する

cronはタイムゾーン変更を自動では検知しないことがあります。念のため再起動しておきましょう。

# RHEL/Rocky Linux系 sudo systemctl restart crond # Ubuntu/Debian系 sudo systemctl restart cron

ntpdによる時刻同期設定と組み合わせると、より信頼性の高い時刻管理ができます。

NTPによる自動時刻同期を有効化する

1. NTPを有効にする

# NTP自動同期を有効化 sudo timedatectl set-ntp true # 無効にする場合 sudo timedatectl set-ntp false

有効化後にtimedatectl statusを実行すると、NTP service: activeと表示されます。

RHEL 9 / Rocky Linux 9ではchronydがNTPサービスとして動作します。Ubuntu 24.04ではsystemd-timesyncdが使われます。

2. NTP同期の詳細を確認する(chronyの場合)

# chronyによる同期状態の確認 chronyc tracking

出力例:

Reference ID : 133.243.238.244 (ntp.nict.jp) Stratum : 2 Ref time (UTC) : Sun May 03 01:45:30 2026 System time : 0.000012345 seconds fast of NTP time Last offset : +0.000008213 seconds RMS offset : 0.000010442 seconds Frequency : -12.345 ppm slow Residual freq : +0.001 ppm Skew : 0.123 ppm Root delay : 0.012345678 seconds Root dispersion : 0.000123456 seconds Update interval : 64.2 seconds Leap status : Normal

System time: ... fast of NTP timeの値が数十ms以下であれば正常に同期できています。

手動で時刻を設定する(NTP無効時)

NTPが使えないオフライン環境では、手動設定も可能です。

# NTPを先に無効化してから手動設定する(必須手順) sudo timedatectl set-ntp false # 日時を手動設定(例: 2026-05-03 10:30:00) sudo timedatectl set-time "2026-05-03 10:30:00" # 確認 timedatectl status

注意点:NTPが有効な状態でset-timeを実行しようとするとエラーになります。

# NTP有効時に set-time を実行した場合のエラー例 Failed to set time: NTP unit is active

必ずset-ntp false → set-time → set-ntp trueの順番で実行してください。

応用・実務Tips

4. /etc/localtimeを直接確認する

timedatectlは内部的に/etc/localtimeシンボリックリンクを更新します。

# /etc/localtime の実体を確認 ls -la /etc/localtime

出力例:

lrwxrwxrwx. 1 root root 30 May 3 10:45 /etc/localtime -> ../usr/share/zoneinfo/Asia/Tokyo

/usr/share/zoneinfo/Asia/Tokyoへのシンボリックリンクになっていれば正しく設定されています。

5. コンテナ・仮想マシンでのタイムゾーン設定

Dockerコンテナ上でタイムゾーンを設定する場合、timedatectlは使えません(systemdが起動していないため)。
Dockerfileやdocker-compose.ymlで環境変数を指定します。

# docker run 時に環境変数で設定 docker run -e TZ=Asia/Tokyo myimage # docker-compose.yml での指定例 environment: - TZ=Asia/Tokyo

systemd-analyzeで起動時間を計測する方法と組み合わせると、時刻関連のトラブルシュートがより体系的に行えます。

トラブルシュート・エラー対処

「Failed to set time: NTP unit is active」

NTPが有効な状態でset-timeを実行した際のエラーです。

# 解決手順 sudo timedatectl set-ntp false sudo timedatectl set-time "YYYY-MM-DD HH:MM:SS" sudo timedatectl set-ntp true

「System clock synchronized: no」のまま変わらない

NTPを有効化したのに同期が完了しない場合、NTPサービスが起動していない可能性があります。

# RHEL/Rocky Linuxの場合、chronydの状態を確認 sudo systemctl status chronyd # 起動していない場合は起動・自動起動有効化 sudo systemctl start chronyd sudo systemctl enable chronyd

メールサーバーの設定など時刻同期が重要なサービスでは、NTP同期を確認してからサービスを起動するのが鉄則です。

タイムゾーン変更後にログが9時間ズレる

既存のログはタイムゾーン変更前の時刻で記録されています。journalctlは表示時に変換するため問題ありませんが、テキストログファイルは変換されません。
変更前後でログの時刻基準が変わることを把握して解析しましょう。

Linux DNS設定の基本と合わせて、サーバー構築時に時刻・名前解決・NTPを一度に確認しておくと、後々のトラブルを防げます。

本記事のまとめ

やりたいこと コマンド
現在の時刻・タイムゾーン・NTP状態を確認する timedatectl status
利用可能なタイムゾーン一覧を表示する timedatectl list-timezones
タイムゾーンをJSTに変更する sudo timedatectl set-timezone Asia/Tokyo
NTP自動同期を有効にする sudo timedatectl set-ntp true
NTP自動同期を無効にする sudo timedatectl set-ntp false
手動で日時を設定する(NTP無効時) sudo timedatectl set-time "2026-05-03 10:30:00"
chronyの同期状態を詳細確認する chronyc tracking
/etc/localtime の設定先を確認する ls -la /etc/localtime

タイムゾーンの設定、本当に理解できていますか?

サーバーの時刻管理は、ログ解析・cron実行・SSL証明書の有効期限確認など、現場の運用に直結するスキルです。timedatectlで設定できても、なぜズレるのか・NTPがどう動くのかを体系的に理解していなければ、本番トラブルで立ち往生してしまいます。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として15年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。