NTPdateコマンド
NTPdate の概要
NTPdate は、Linux および Unix 系システムでネットワーク タイム プロトコル (NTP) サーバー時間を同期するためのコマンド ライン プログラムです。システム クロックをインターネット上の標準時刻サーバーと一致させ、システム時刻の正確さを保証します。
NTP サーバー時間をクエリします:
ntpdate -q pool.ntp.org
NTPdateをインストールする
NTPdate の使用を開始する前に、システムに NTPdate をインストールする必要があります。さまざまなシステムに NTPdate をインストールするコマンドは次のとおりです。
- Ubuntu と Debian の場合:
sudo apt-get install ntpdate
- CentOS および RHEL の場合:
sudo yum install ntpdate
基本的な使い方
ntpdate
ntpdate を使用して NTP サーバーの時刻を同期するには、コマンドの後に NTP サーバーのアドレスを指定して実行するだけです。例えば:
ntpdate time.windows.com
このコマンドは、システム時刻をtime.windows.com
サーバーと同じ時刻に設定します。
パラメータの詳しい説明
以下は、NTPdate コマンドのいくつかの重要なパラメータの詳細な説明です。
- -u
: UDP ポート 123 を使用する代わりに、カプセル化されていない NTP 要求および応答パケットを使用します。
このパラメータは、カプセル化されていないハイエンドのポート番号ソースを使用して NTP 要求を送信するように ntpdate に指示します。これは通常、ファイアウォールまたはルーターがパブリック ネットワーク上の NTP サーバーのポート 123 へのアクセスをブロックしている場合に発生します。
「非カプセル化」および「ハイエンド スローガン」は、ネットワーク通信用語です。
-
「非カプセル化」: コンピュータ ネットワークでは、データは送信側から受信側まで複数のプロトコル層によって処理される必要があります。各層はデータをある程度ラップまたはカプセル化して、その層のプロトコルに必要な制御情報を追加します。リクエストが「カプセル化されていない」と呼ばれる場合、追加の制御情報やヘッダー情報を追加せず、アプリケーションによって生成された生のデータを単に送信することを意味します。
-
「ハイエンド ポート番号」: ネットワーク通信において、ポート番号は、同じコンピュータ上の異なるアプリケーションやプロセスを区別する方法です。慣例により、ポート 0 ~ 1023 は「既知のポート」として定義されており、これらのポートは主に、広く使用されているプロトコル (HTTP ポート 80、HTTPS ポート 443 など) に関連付けられています。ポート 1024 ~ 49151 は「登録ポート」として定義されており、主に企業や組織によって使用されます。残りのポート (番号 49152 ~ 65535) は、「動的」ポートまたは「プライベート」ポートとして定義されます。「ハイエンド ポート」というときは、通常、この範囲のポートを指します。
ntpdate では、-u
パラメータの機能は、デフォルトのポート 123 の代わりにハイエンド ポート番号を使用して NTP 要求を送信できるようにすることです。これは主に、環境によってはネットワーク ファイアウォールが低いポート番号へのアクセスをブロックする可能性があるためですが、これはハイエンドのポート番号を使用することで回避できます。
- -b
: ローカルシステム時刻とネットワーク時刻の間に大きな差異がある場合、時刻調整が強制されます。
ローカル システム時刻とネットワーク時刻の間に大きな差がある場合、このオプションを使用すると、時刻を徐々に変更するのではなく、時刻を強制的に調整できます。このパラメータにより、ntpdate は最初の同期中にオフセットを無視し、時刻を NTP サーバーから取得した正しい時刻に直接設定します。
- -s
: syslog にログを出力します。
このオプションは、ログ情報をターミナルに直接表示するのではなく、syslog に出力します。Syslog は、Linux/Unix システムのシステム ログ サービスであり、システム カーネル、システム サービス、アプリケーションからのログ情報の受信と処理を担当します。
- -d
: デバッグ情報を出力します。
このオプションはデバッグ モードをオンにし、発生する可能性のある問題のトラブルシューティングを容易にする詳細なデバッグ情報を出力します。この情報には、ntpdate によって送受信された各パケットの詳細と、同期プロセスに関するその他の詳細が含まれます。
- -q
: NTP サーバー時刻を問い合わせます。
このパラメータを使用すると、ntpdate は指定された NTP サーバーのみにクエリを実行できますが、ローカル時刻は設定されません。これは、時間オフセットを確認したいだけで、システム時間をすぐに調整したくない場合に便利です。
よくあるエラーと解決策
時間を同期しようとすると、問題が発生することがあります。ここでは、いくつかの一般的なエラーとその修正方法を示します。
-
エラー: 「ntpdate[12345]: 使用できるサーバーがありません。終了します」
このエラーは通常、指定された NTP サーバーに接続できないことを意味します。サーバーアドレスが正しいか確認するか、別のNTPサーバーに変更してみてください。
-
エラー: 「ntpdate[12345]: NTP ソケットが使用中のため、終了しています」
このエラーは、別のプログラムがすでに NTP サービスを使用していることを示します。この場合、
-u
問題を解決するためのオプションがあります。
実用化
NTPdate の実際の応用シナリオは、cron ジョブによる定期的な時刻同期です。以下に例を示します。
0 * * * * /usr/sbin/ntpdate pool.ntp.org >> /var/log/ntpdate.log 2>&1
上記のコマンドは、1 時間ごとに時刻を同期し、/var/log/ntpdate.log
ファイルに記録します。
参考リソース
ntpdate をオフラインでインストールする方法 (apt-get download ntpdate)
Ubuntu 20.04 でのオフライン インストールの手順はntpdate
次のとおりです。
ntpdate
パッケージをダウンロードする: まず、インターネットにアクセスできる別のマシンからインストール パッケージをダウンロードする必要がありますntpdate
。Ubuntu の公式ソフトウェア パッケージ ライブラリ ( https://packages.ubuntu.com/ ) からダウンロードできます。検索ボックスに と入力しntpdate
、適切な Ubuntu のバージョン (この場合は 20.04、Focal) を選択し、 または (システム アーキテクチャに応じて) をクリックしてファイルをamd64
ダウンロードi386
します.deb
。
私たちのボックスは arm64 アーキテクチャです。これをダウンロードしてください。
なぜリンクがないのでしょうか? amd64 バージョンのリンクがあります。
説明する:
指定した URL から判断すると、ARM64 アーキテクチャに基づいた Ubuntu 20.04 システムにインストールしようとしていることがわかります
ntpdate
。
ただし、一部のパッケージは特定のソフトウェア ソースからのみ入手できるため、Ubuntu のパッケージ ページにはダウンロード リンクが表示されない場合があります。この場合、ntpdate
ARM64 アーキテクチャ バージョンを提供する適切なソースを見つける必要があります。
考えられる解決策は次のとおりです。
1. インターネットに接続できる別の Ubuntu マシンでターミナルを開きます。
2. Universe ソフトウェア ソースを追加します (まだ追加されていない場合)。ほとんどの Ubuntu インストールにはデフォルトでユニバース リポジトリが含まれていますが、念のため、次のコマンドを実行して追加できます。
sudo add-apt-repository universe
sudo apt-get update
3.ntpdate
パッケージとその依存関係をダウンロードします。apt-get download
以下に示すコマンドを使用して、パッケージと依存関係をダウンロードできます
apt-get download ntpdate
。 この方法では、インターネットにアクセスでき、同じアーキテクチャ (ARM64) と OS バージョンの Ubuntu を実行している別のマシンが必要であることに注意してください。
- ファイルをターゲット マシンにコピーします。次に、ダウンロードしたファイルをインストール先のマシンに
.deb
コピーする必要があります。ntpdate
USB デバイスまたはその他の方法を使用して転送できます。
-
ターゲット マシンにインストールする
ntpdate
: 最後に、Ubuntu 20.04 マシンでターミナルを開き、.deb
ファイルが含まれているディレクトリに移動します。次に、次のコマンドを使用してインストールしますntpdate
。sudo dpkg -i <file-name.deb>
ここで、
<file-name.deb>
はダウンロードしたntpdate
インストール パッケージのファイル名です。
インストール中に依存関係の問題が発生した場合は、それらの依存関係パッケージをダウンロードしてインストールする必要がある場合もあります。これらの依存パッケージは同じ Ubuntu パッケージ ページで見つけて、上記の手順を繰り返してインストールできます。
上記の手順を完了すると、Ubuntu 20.04 マシンにオフラインでインストールできるようになりますntpdate
。