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

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

この記事では、ntpdate コマンドでLinuxサーバーの時刻をNTPサーバーと同期する方法を解説します。
基本的な使い方から主要オプション、crontabとの組み合わせ、
現代のLinuxで推奨されるchronyへの移行方法まで、実務で必要な情報を網羅しました。
【この記事でわかること】
・ntpdateはNTPサーバーに接続してサーバー時刻を即時修正するコマンド(root権限必須)
・-bオプションで強制修正、-sオプションでsyslogへの記録ができる
・CentOS8以降ではntpdateが廃止。chronyctlやtimedatectlへの移行を推奨

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

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

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

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

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

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)で指定するのが安全です。

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

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

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

# chronyが動いているか確認する # systemctl status chronyd # 即時に時刻同期する(ntpdate相当) # chronyc makestep # 同期状態を確認する # chronyc tracking

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

# NTP同期の状態を確認する # timedatectl status # NTP同期を有効にする # timedatectl set-ntp true

トラブルシュート

「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

本記事のまとめ

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

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