ntpdateでLinuxサーバーの時刻を同期する方法|chronyへの移行とcrontab連携も

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)【Linux入門】初心者のための基礎知識・講座 > ntpdateでLinuxサーバーの時刻を同期する方法|chronyへの移行とcrontab連携も
「サーバーの時刻がずれていて、ログの時系列がおかしい」
「ntpdateを定期実行してもなぜか時刻が戻る」
サーバーの時刻ずれは、認証失敗・メール配信エラー・バッチ処理の誤動作など、
様々なトラブルの原因になります。

この記事では、ntpdate コマンドでLinuxサーバーの時刻をNTPサーバーと同期する方法を解説します。
基本的な使い方から主要オプション、crontabとの組み合わせ、
タイムゾーンの確認・設定、現代のLinuxで推奨されるchronyへの移行方法まで、実務で必要な情報を網羅しました。

この記事のポイント

・ntpdateはNTPサーバーに接続してサーバー時刻を即時修正するコマンド(root権限必須)
・-bで強制修正、-sでsyslog記録。crontabに登録して定期実行するのが実務の基本形
・CentOS8/RHEL8以降はntpdate廃止。chronyc makestepが即時同期の代替コマンド
・timedatectl set-ntp trueでNTP自動同期を有効化。dateコマンドで書式指定出力も可能


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

ntpdateコマンドとは?時刻同期の仕組み

ntpdate は、インターネット上のNTPサーバー(Network Time Protocol サーバー)に接続し、
自サーバーの時刻を即座に修正するコマンドです。

サーバーの時刻がずれると、以下のような問題が発生します。

認証の失敗:KerberosやSSL証明書の検証は時刻のずれが一定以上あると認証エラーになる
ログの不整合:時刻がずれると障害調査時にログの前後関係が把握できなくなる
バッチ処理の誤動作:cronで起動するバッチ処理が正しい時刻で動かなくなる
メール配信の問題:送受信時刻がずれてメールが迷惑メール判定される場合がある

UTCとJSTのずれに注意
LinuxのVPSやクラウドサーバーは、初期状態でUTC(協定世界時)に設定されていることがほとんどです。
UTCは日本時間(JST)より9時間遅れているため、タイムゾーンを正しく設定していないと
ログが9時間ずれて記録され、障害調査で痛い目を見ます。

タイムゾーン 現在時刻の例 説明
UTC 15:00 協定世界時(グリニッジ標準時)
JST(Asia/Tokyo) 24:00(翌0:00) 日本標準時。UTCより+9時間

ntpdate を定期的に実行することで、常に正確な時刻を維持できます。
実行にはroot権限(またはsudo)が必要です。

ntpdateの基本的な使い方

1. NTPサーバーを指定して時刻を同期する

# 書式 # ntpdate NTPサーバー名(またはIPアドレス) # 例:日本のNTPサーバーで時刻を合わせる # ntpdate ntp.nict.go.jp 15 Mar 10:00:00 ntpdate[1234]: step time server 133.243.238.163 offset 0.123456 sec

「step time server」と表示されれば時刻修正が完了しています。
「offset」の値がずれていた時間(秒)です。

2. 主なNTPサーバー一覧

日本国内で信頼性の高いNTPサーバーを使いましょう。

ntp.nict.go.jp:情報通信研究機構(NICT)のNTPサーバー。日本国内で最も安定
ntp.jst.mfeed.ad.jp:日本のISPが提供する公開NTPサーバー
0.jp.pool.ntp.org:NTPプールプロジェクトの日本向けサーバー群

主要オプションの使い方

1. -b オプション:時刻を強制的に修正する

デフォルトでは時刻のずれが大きい場合、段階的に調整されます。
-b オプションを付けると即座に強制修正します。

# 時刻を強制的に修正する # ntpdate -b ntp.nict.go.jp

2. -s オプション:ログをsyslogに出力する

-s オプションを付けると、ntpdateの実行結果が標準出力ではなくsyslogに記録されます。
crontabで自動実行する場合は、このオプションをつけておくと管理しやすくなります。

# ログをsyslogに出力する # ntpdate -s ntp.nict.go.jp # syslogで確認する # grep ntpdate /var/log/messages Mar 15 10:00:00 server01 ntpdate[1234]: step time server 133.243.238.163 offset 0.012345 sec

3. -d オプション:デバッグモードで実行する

-d オプションは、NTPサーバーとの通信内容を詳細に表示します。
実際の時刻修正は行わないため、動作確認に使えます。

# デバッグモードで確認する(時刻修正は行わない) # ntpdate -d ntp.nict.go.jp

crontabと組み合わせて定期的に時刻同期する

本番サーバーでは、ntpdateをcrontabに登録して定期実行するのが一般的な使い方です。

# /etc/crontab に以下を追記する(例:毎日午前3時に実行) 0 3 * * * root /usr/sbin/ntpdate -s ntp.nict.go.jp # または crontab -e で記述する場合 0 3 * * * /usr/sbin/ntpdate -s ntp.nict.go.jp

-s オプションをつけることで、実行結果が /var/log/messages に記録されます。
定期実行時はフルパス(/usr/sbin/ntpdate)で指定するのが安全です。

ntpdate定期実行時のよくある落とし穴
crontabで実行してもなかなか時刻が戻らない場合、実はntpd(またはchronyd)が同時に動いていて
ntpdateの修正を打ち消しているケースがあります。
ntpdを運用中であれば、ntpdateではなくntpd/chronyの設定を見直すほうが根本的な解決になります。

タイムゾーンの確認と設定(dateコマンドを活用する)

ntpdateで時刻を合わせるだけでなく、タイムゾーンが正しく設定されているかの確認も忘れずに行いましょう。
時刻の数値は合っていてもタイムゾーンがUTCのままだと、ログが9時間ずれて記録されます。

1. 現在の時刻とタイムゾーンを確認する

# timedatectlで現在の設定を確認する $ timedatectl Local time: Thu 2026-05-29 15:30:00 JST Universal time: Thu 2026-05-29 06:30:00 UTC RTC time: Thu 2026-05-29 06:30:00 Time zone: Asia/Tokyo (JST, +0900) System clock synchronized: yes NTP service: active RTC in local TZ: no

「Time zone: Asia/Tokyo (JST, +0900)」と表示されていれば日本時間が正しく設定されています。
「Time zone: UTC」のままであれば、以下のコマンドでタイムゾーンを変更してください。

# タイムゾーンをAsia/Tokyoに変更する(sudo必須) # timedatectl set-timezone Asia/Tokyo

2. dateコマンドで時刻を確認する

date コマンドは時刻の確認だけでなく、書式を指定した出力やスクリプトでのファイル名生成にも使えます。

# 現在時刻を確認する $ date Thu May 29 15:30:00 JST 2026 # 「年-月-日 時:分:秒」の形式で出力する $ date "+%Y-%m-%d %H:%M:%S" 2026-05-29 15:30:00 # バックアップファイル名に使いやすい日付形式 $ date "+%Y%m%d" 20260529 # 7日後の日付を確認する(cronジョブの検証などに便利) $ date -d "+7 days" "+%Y-%m-%d" 2026-06-05

ログローテーションやバックアップスクリプトで日付をファイル名に埋め込む際に重宝します。

CentOS8以降はchronyを使う(ntpdateは廃止)

CentOS8 / RHEL8 以降では ntpdate パッケージが廃止されました。
現代のLinuxでは chrony または systemd-timesyncd を使うのが標準です。

1. chronyctlで即時同期する(ntpdateの代替)

# chronyが動いているか確認する # systemctl status chronyd # 即時に時刻同期する(ntpdate相当) # chronyc makestep # 同期状態を確認する # chronyc tracking Reference ID : 85F3EEA3 (ntp.nict.go.jp) Stratum : 2 Ref time (UTC) : Thu May 29 06:30:00 2026 System time : 0.000123456 seconds fast of NTP time Last offset : +0.000234567 seconds RMS offset : 0.000345678 seconds Frequency : 1.234 ppm slow

2. timedatectlでNTP同期を有効にする

# NTP同期の状態を確認する # timedatectl status Local time: Thu 2026-05-29 15:30:00 JST Universal time: Thu 2026-05-29 06:30:00 UTC RTC time: Thu 2026-05-29 06:30:00 Time zone: Asia/Tokyo (JST, +0900) System clock synchronized: yes NTP service: active RTC in local TZ: no # NTP同期を有効にする # timedatectl set-ntp true

VPSやクラウドサーバーでは、ほとんどの場合NTPはデフォルトで有効になっています。
NTP service: active と表示されていれば自動同期が働いているので、ntpdateの定期実行は不要です。

トラブルシュート

「No servers can be used, exiting」と表示される

指定したNTPサーバーに接続できない場合に出るエラーです。
以下の点を確認してください。

ファイアウォール:UDPの123番ポートがアウトバウンドで許可されているか
NTPサーバー名:タイプミスがないか、nslookup で名前解決できるか
ネットワーク疎通:ping でNTPサーバーに到達できるか確認する

# NTPサーバーの名前解決を確認する $ nslookup ntp.nict.go.jp # UDPポート123の疎通確認(ntpqが使える場合) # ntpq -p ntp.nict.go.jp

「Failed to set time zone: Failed to update /etc/localtime」が出た場合

sudo なしで timedatectl set-timezone を実行した場合に表示されるエラーです。
コマンドの先頭に sudo を付けて再実行してください。

# sudoを付けて実行する $ sudo timedatectl set-timezone Asia/Tokyo

ntpdateを実行しても時刻が戻ってしまう

ntpd(またはchronyd)が同時に動いていると、ntpdateで修正した時刻をntpdが元に戻すことがあります。

# ntpdの動作状態を確認する # systemctl status ntpd # chronydの動作状態を確認する # systemctl status chronyd

ntpdが動いているサーバーでは、ntpdateを単発で使うのではなくntpdの設定(/etc/ntp.conf)を
見直してNTPサーバーとの同期設定を修正するのが正しい対処です。

本記事のまとめ

やりたいこと コマンド
NTPサーバーで時刻を同期する ntpdate ntp.nict.go.jp
時刻を強制的に修正する ntpdate -b ntp.nict.go.jp
実行結果をsyslogに記録する ntpdate -s ntp.nict.go.jp
デバッグモードで確認する(修正なし) ntpdate -d ntp.nict.go.jp
crontabで定期実行する 0 3 * * * root /usr/sbin/ntpdate -s ntp.nict.go.jp
タイムゾーンと時刻を確認する timedatectl
タイムゾーンを日本時間に変更する sudo timedatectl set-timezone Asia/Tokyo
現在時刻を書式指定で表示する date "+%Y-%m-%d %H:%M:%S"
chronyで即時同期する(現代のLinux) chronyc makestep
NTP同期を有効にする timedatectl set-ntp true

サーバーの時刻管理を含めた、Linuxインフラの基礎を体系的に学びたいですか?

時刻ずれは小さいことのようで、障害に発展するケースは現場で何度も見てきました。基礎を正しく学んでおくことが大事です。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

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

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

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

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

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

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

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

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

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

この記事を書いた人

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

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

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