timedatectl:Linux サーバーの時刻同期状態の確認とタイムゾーン設定
timedatectl は、Linux サーバーのシステムクロックとタイムゾーン、NTP による時刻同期の状態を確認・変更する systemd のコマンドです。chrony を使う AlmaLinux 9 サーバーと ntpsec を使う Debian 12 サーバーで時刻同期の状態を確認したところ、どちらのサーバーも時計は合っていましたが、NTP service の行は active と n/a で異なりました。
以下の出力は 2 台のサーバーで実行した結果です。ホスト名と IP アドレス、パッケージのバージョン番号だけを例の値に置き換え、時刻やタイムゾーンを変えるコマンドは運用中のサーバーでは実行していません。
1️⃣ timedatectl の使い方と Linux サーバーの時刻確認
オプションなしで timedatectl を実行すると、status を付けたときと同じ結果になります。システムクロックとハードウェアクロック(RTC)の時刻、タイムゾーン、同期状態が 1 画面にまとまっています。以下は Debian 12 サーバーで実行した結果です。
timedatectl Local time: Wed 2026-10-28 19:49:57 UTC
Universal time: Wed 2026-10-28 19:49:57 UTC
RTC time: Wed 2026-10-28 19:49:57
Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: yes
NTP service: n/a
RTC in local TZ: noDebian 12 サーバーはタイムゾーンが Etc/UTC のため、Local time と Universal time が同じ時刻で表示されました。各行で確認する内容と 2 台のサーバーの結果は下の表のとおりです。
| 出力の行 | 確認できるもの | 2 台のサーバーの結果と確認ポイント |
|---|---|---|
| Local time | タイムゾーンを適用したシステムクロックの現在時刻 | タイムゾーンを変えると、この行と date の結果だけが新しいタイムゾーンになる |
| Universal time | 同じ時刻を UTC で表した値 | タイムゾーンを変えてもそのまま — Etc/UTC の Debian 12 サーバーでは Local time と同じ時刻 |
| RTC time | ハードウェアクロック(RTC)の時刻 | タイムゾーン表示なしで出る — RTC in local TZ が no なら UTC の時刻 |
| Time zone | 設定されたタイムゾーンと略称、UTC との差 | 変更するときは list-timezones の一覧にある名前で |
| System clock synchronized | カーネルが時計を同期済みと見なしているか | 2 台とも yes — no なら chronyc tracking や ntpq -p で基準サーバーから確認 |
| NTP service | timedatectl がオン・オフする同期サービスが動いているか | AlmaLinux 9(chrony)は active、Debian 12(ntpsec)は n/a — n/a は timedatectl が知らないサービスなので systemctl で確認 |
| RTC in local TZ | ハードウェアクロックをローカル時刻で保つか(no = UTC) | 2 台とも no — yes を UTC に戻すコマンドは set-local-rtc 0 |
Linux には時計が 2 つあります。システムクロックは起動後にカーネルが保つ時計で、ハードウェアクロックはサーバーの電源が切れていても時刻を保つマザーボードの時計です。
ハードウェアクロックは hwclock で直接読みます。hwclock は時刻を現在のタイムゾーンに変換して出力します。AlmaLinux サーバーでコマンドの前に TZ=UTC を付けて読んだ結果は、末尾に +00:00 が付いた UTC の時刻でした。
TZ=UTC hwclock --show2026-10-28 19:53:33.006788+00:00一般ユーザーで接続した Debian 12 サーバーでは、同じコマンドがハードウェアクロックにアクセスできずに終わりました。
/usr/sbin/hwclock --showhwclock: Cannot access the Hardware Clock via any known method.
hwclock: Use the --verbose option to see the details of our search for an access method.RTC in local TZ の行は /etc/adjtime ファイルの 3 行目と同じ設定です。AlmaLinux サーバーの 3 行目は UTC で、ハードウェアクロックを UTC で保つという意味です。
cat /etc/adjtime0.0 0 0.0
0
UTCスクリプトで値を読むときは status の代わりに show を使います。Debian 12 サーバーで実行すると、同じ情報が「名前=値」の形で 1 行に 1 つずつ出力されます。
timedatectl showTimezone=Etc/UTC
LocalRTC=no
CanNTP=no
NTP=no
NTPSynchronized=yes
TimeUSec=Wed 2026-10-28 19:49:57 UTC
RTCTimeUSec=Wed 2026-10-28 19:49:57 UTC-p で項目を選び --value を付けると、名前なしで値だけが残ります。タイムゾーン名だけを取り出すときにこの形を使います。
timedatectl show -p Timezone --valueEtc/UTC🔲 timedatectl コマンドシミュレーター
下のシミュレーターでは、時刻の確認とタイムゾーン一覧、タイムゾーンの変更、chronyc による同期確認のコマンドを実際に入力してみることができます。
2️⃣ Linux サーバーの時刻同期の状態
System clock synchronized の行ではカーネルが時計を同期済みと見なしているかを、NTP service の行では timedatectl がオン・オフできる同期サービスが動いているかを確認します。show では同じ値が NTPSynchronized と NTP として出力され、CanNTP はオン・オフできる同期サービスがあるかどうかを表します。
chrony を使う AlmaLinux 9 サーバーでは、3 つの値がすべて yes でした。
timedatectl show -p CanNTP -p NTP -p NTPSynchronizedCanNTP=yes
NTP=yes
NTPSynchronized=yesntpsec で時刻を合わせる Debian 12 サーバーでは NTPSynchronized だけが yes で、CanNTP と NTP は no でした。そのため、このサーバーの status 画面では NTP service の行が n/a と表示されました。
timedatectl show -p CanNTP -p NTP -p NTPSynchronizedCanNTP=no
NTP=no
NTPSynchronized=yesntpsec サービス自体は動いていました。
systemctl is-active ntpsecactivetimedatectl が知っている同期サービスは ntp-units.d フォルダーの一覧ファイルに書かれたものだけで、ディストリビューションのパッケージはこのファイルを /usr/lib/systemd/ntp-units.d/ に置きます(公式マニュアルによる)。AlmaLinux 9 サーバーには chrony パッケージが入れた一覧ファイルがあり、その中に chronyd.service の 1 行が入っていました。
cat /usr/lib/systemd/ntp-units.d/50-chronyd.listchronyd.servicerpm -qf /usr/lib/systemd/ntp-units.d/50-chronyd.listchrony-4.8-10.el9.x86_64Debian 12 サーバーにはこのフォルダーがありませんでした。ntpsec は一覧にないサービスのため、timedatectl は時計が合っていることはわかっても、そのサービスをオン・オフすることはできませんでした。
ls /usr/lib/systemd/ntp-units.d/ls: cannot access '/usr/lib/systemd/ntp-units.d/': No such file or directory3️⃣ chronyc で時刻同期を確認
chrony を使うサーバーで、どのタイムサーバーに時計を合わせているかは chronyc で確認します。sources は chronyd が問い合わせているタイムサーバーとその状態を 1 行ずつ出力します。
chronyc sourcesMS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^- 192.0.2.10 2 10 377 943 +272us[ +275us] +/- 55ms
^- ntp1.example.com 2 10 377 80 -28us[ -32us] +/- 3655us
^- 198.51.100.33 3 10 257 384 -151us[ -156us] +/- 97ms
^- 198.51.100.82 3 10 177 532 +157us[ +149us] +/- 45ms
^* 192.0.2.123 3 4 377 2 -21us[ -23us] +/- 312us先頭の ^ はタイムサーバー、2 文字目の * は今時計を合わせている基準サーバー、- は計算に加えていない候補サーバーです。基準サーバーの Poll 4 は 2 の 4 乗の 16 秒ごとに問い合わせるという意味で、Reach 377 は直近 8 回の応答をすべて受け取ったという値です。
tracking は、システムクロックが基準サーバーの時刻とどれだけずれているかを出力します。
chronyc trackingReference ID : C000027B (192.0.2.123)
Stratum : 4
Ref time (UTC) : Wed Oct 28 19:50:21 2026
System time : 0.000002422 seconds slow of NTP time
Last offset : -0.000002098 seconds
RMS offset : 0.000000981 seconds
Frequency : 6.348 ppm slow
Residual freq : -0.001 ppm
Skew : 0.017 ppm
Root delay : 0.000300815 seconds
Root dispersion : 0.000150780 seconds
Update interval : 16.3 seconds
Leap status : NormalSystem time の行を見ると、システムクロックは NTP の時刻より 0.000002422 秒遅れており、Leap status は Normal でした。Update interval の 16.3 秒は、直近 2 回の時計更新の間隔です。
どのサーバーに問い合わせるかは /etc/chrony.conf の pool 行と server 行で決まります。コメントと空行を除いて設定行だけを残すと、次のようになります。
grep -v "^#" /etc/chrony.conf | grep -v "^$"pool 2.almalinux.pool.ntp.org iburst
sourcedir /run/chrony-dhcp
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
keyfile /etc/chrony.keys
ntsdumpdir /var/lib/chrony
leapsectz right/UTC
logdir /var/log/chrony
server 192.0.2.123 prefer iburst minpoll 4 maxpoll 4pool 行は AlmaLinux の NTP プールに問い合わせる行で、最後の server 行の prefer は他のサーバーよりこのサーバーを先に選ばせるオプションです。makestep 1.0 3 は、chronyd の起動後最初の 3 回は 1 秒を超えてずれた時計を一度に合わせ、その後は時計を少しずつ速く、または遅く進めて合わせる設定です。rtcsync はカーネルに 11 分ごとにシステム時刻をハードウェアクロックへ書き写させます(公式ドキュメントによる)。
ntpsec を使う Debian 12 サーバーでは、ntpq -p で同じ内容を確認しました。先頭の * が基準サーバーで、3 台とも 1024 秒ごとに問い合わせていました。
ntpq -p remote refid st t when poll reach delay offset jitter
===============================================================================
+203.0.113.43 198.51.100.28 2 u 835 1024 377 184.6893 -0.1018 1.4879
+203.0.113.44 198.51.100.27 2 u 547 1024 377 183.0827 -2.4227 4.0957
*ntp2.example.co 198.51.100.40 2 u 440 1024 377 177.4670 -0.5814 1.70704️⃣ timedatectl でタイムゾーンを変更
タイムゾーン名は list-timezones で確認します。ほとんどが「大陸/都市」形式の名前で 1 行に 1 つずつ出力され、2 台とも 598 個でした。
timedatectl list-timezones | head -5Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmaratimedatectl list-timezones | wc -l598一覧が長いので、名前を探すときは grep で絞り込みます。
timedatectl list-timezones | grep -i new_yorkAmerica/New_Yorkタイムゾーンは set-timezone の後に一覧の名前を書いて変更します。このコマンドは /etc/localtime のリンクを新しいタイムゾーンファイルに置き換えるため、一般ユーザーでは sudo を付けて実行します。
sudo timedatectl set-timezone America/New_York/etc/localtime がタイムゾーンファイルへのリンクかどうかは ls -l で確認します。
ls -l /etc/localtimelrwxrwxrwx 1 root root 27 Sep 24 12:52 /etc/localtime -> /usr/share/zoneinfo/Etc/UTC一覧にない名前を入れると、タイムゾーンを変える前にすぐ拒否されました。
timedatectl set-timezone Mars/OlympusFailed to set time zone: Invalid or not installed time zone 'Mars/Olympus'タイムゾーンを変えてもシステムクロックの時刻はそのままで、Local time と date コマンドの結果だけが新しいタイムゾーンで表示されます。ハードウェアクロックを UTC にしているサーバーなら、ハードウェアクロックも変わりません(公式マニュアルによる)。
5️⃣ timedatectl で NTP を有効にする・時刻を直接設定する
set-ntp true は同期サービス一覧の最初のサービスを起動し、起動時にも開始されるようにします。false は一覧のサービスを停止し、起動時に開始されないようにします(公式マニュアルによる)。
sudo timedatectl set-ntp true一覧ファイルのない Debian 12 サーバーでは、今と同じ値の false を入れても NTP not supported で終わりました。ntpsec のように一覧にないサービスは、systemctl で直接起動・停止します。
timedatectl set-ntp falseFailed to set ntp: NTP not supported時刻を直接設定するときは set-time の後に日付と時刻を書きます。このコマンドはシステムクロックと一緒にハードウェアクロックも合わせます。
sudo timedatectl set-time '2026-10-28 20:00:00'Debian 12 サーバーで形式の違う値を入れると、時刻を変えずにエラーで終わりました。
timedatectl set-time badFailed to parse time specification 'bad': Invalid argumentchrony を使うサーバーで大きくずれた時計を一度に合わせるときは、chronyc makestep を使います。
sudo chronyc makestepmakestep は少しずつ合わせていた残りの差を捨て、システムクロックをその差の分だけすぐに飛ばします。公式ドキュメントは時刻が急に変わると一部のソフトウェアが影響を受けることがあると警告しているため、ゆっくり合わせるのが難しいほど時計がずれたときだけ使います。
🔢 FAQ & おすすめコンテンツ
ℹ️ 提携について
当サイトのコンテンツにはアフィリエイトリンクが含まれています。訪問者がこのリンクを通じて商品やサービスを購入すると、当サイトは販売元から手数料を受け取ります。この過程において、購入者が支払う金額(イベント割引適用で金額が下がります↓)は上昇しません。掲載されている価格・割引・在庫情報は作成時点のものであり、実際とは異なる場合がありますので、ご購入前に販売元にて最終確認をお願いいたします。商品の選定および評価は独自の基準に基づいて行われており、手数料の支払いの有無は紹介順や評価内容に影響を与えません。