ntpq(8) FreeBSD 一般コマンドマニュアル

ntpq

前のページ 上に戻る 次のページ

ntpq




解説

     ntpq は、推奨されている NTP モード 6 制御メッセージフォーマットを実装する
     NTP サーバに、現在の状態について問い合わせを行なったり、状態の変更を要求
     するために使います。このプログラムは、対話的モードでもコマンドライン引数
     を使った制御でも動作させることができます。任意の変数を読み書きするリクエ
     ストを組み立てることができ、生のまま、または綺麗に整形して出力するオプ
     ションがあります。 ntpq は、サーバに複数の問い合わせを送ることで通信相手
     (peer) のリストを得て、共通なフォーマットで出力することができます。

     ntpq が実行されたとき、1 つ以上のリクエストオプションが、コマンドラインに
     含まれる場合は、それぞれのリクエストは、コマンドライン引数で与えられた各
     ホスト、またはデフォルトである ``localhost'' で動いている NTP サーバに送
     られます。リクエストオプションが与えられなかった場合、 ntpq は、コマンド
     を標準入力から読み込み、コマンドラインで指定された最初のホストで動いてい
     る NTP サーバに対して実行しようとします。このときも、ホストが指定されてい
     ないときは、デフォルトで ``localhost'' になります。 ntpq は標準入力が端末
     である場合は、プロンプトを出してコマンドを受け付けます。

     ntpq は NTP サーバとの通信に、NTP モード 6 パケットを使うため、ネットワー
     ク上でそれを許すような互換サーバへの問い合わせに使用できます。 NTP は UDP
     のプロトコルなので、特にネットワークトポロジ的に遠くにある場合は、この通
     信はやや信頼性に欠けるということに注意してください。 ntpq は、リクエスト
     を再送する試みを一度行ない、適当な制限時間の範囲内でリモートホストから返
     事がなかったときは、そのリクエストは時間切れとなります。

     コマンドラインオプションは以下の通りです。 -i または -n 以外のコマンドラ
     インオプションを指定すると、指定したホスト (群) に、指定した問い合わせ (
     または複数の問い合わせ) を直ちに送ることになります。指定しなかった場合、
     ntpq は標準入力から対話的なフォーマットのコマンドを読み込もうとします。以
     下のオプションが使用可能です:

     -c command
             後に続く引数は、対話的なフォーマットのコマンドとして解釈され、指
             定されたホスト (群) に対して実行すべきコマンドのリストに付け加え
             られます。複数の -c オプションを与えることもできます。

     -i      ntpq を強制的に対話的モードで動作させます。標準出力にプロンプトが
             表示され、標準入力からコマンドが読み込まれます。

     -n      すべてのホストアドレスを、ドットで 4 つの部分に区切られた数値の形
             式で出力し、正規のホスト名に変換しません。

     -p      サーバに既知な通信相手のリストと、それらの状態の概要を出力しま
             す。これは、対話コマンド peers と同等です。

   B>内B>部B>コB>マB>ンB>ド
     対話的なフォーマットのコマンドは、キーワードとそれに続く 0 から 4 個の引
     数から構成されます。キーワード全長のうち、他と区別できる文字数がタイプさ
     れれば、有効になります。コマンドの出力は通常標準出力に送られますが、コマ
     ンドライン上で ">" に続けてファイル名を指定することで、個々のコマンドの出
     力をファイルに送ることができます。いくつかの対話的フォーマットのコマンド

     clearvars
             NTP モード 6 メッセージが運ぶデータは、次の形の項目のリストから成
             ります。 <variable_name>=<value> ここで、サーバの変数を読み取るリ
             クエストでは、この "=<value>" は無視されるので、省略することがで
             きます。 ntpq は、制御メッセージに含まれるデータを組み立てるため
             の内部リストを保持しており、以下に述べる readlistwritelist コ
             マンドを使って送ります。 addvars コマンドで、このリストに、変数と
             省略可能な値を追加することができます。 1 つより多くの変数を追加す
             るときには、リストはコンマで区切り、空白を含んではいけません。
             rmvars コマンドは、個々の変数をリストから削除するために用い、
             clearvars コマンドは、リストからすべての変数を削除します。

     authenticate yes | no
             通常、 ntpq は、書き込みリクエストでない限りリクエストを認証しま
             せん。コマンド ``authenticate yes'' は、 ntpq が生成するすべての
             リクエストに認証をつけて送るようにします。認証されたリクエストの
             扱いはサーバによって少し異なります。もしも通信相手の表示を行う前
             に認証をオンにすると、時々 fuzzball の CPU を溶かしてしまうかもし
             れません。

     cooked  問い合わせコマンドからの出力を、 "加工済み (cooked)" 形式にしま
             す。サーバに認識された変数は、人間に使える形に再整形された値にな
             ります。 ntpq が、その変数は本来デコードできる値を持っていると判
             断したのに、デコードされていないものには、その後に ""?  が付けら
             れます。

     debug more | less | off
             内部の問い合わせプログラムのデバッグをオンまたはオフにします。

     delay milliseconds
             認証を求めるリクエストに含まれるタイムスタンプに加えられる時間間
             隔を指定します。これは、長い遅延のあるネットワーク経路や時計の同
             期していないマシン間で (信頼できない) サーバの再設定ができるよう
             にするために使われます。実際にはもうサーバは認証リクエストにおい
             てタイムスタンプを要求しませんので、このコマンドはもはや用いられ
             ないかもしれません。

     host hostname
             今後問い合わせを送るホストを指定します。与える hostname は、ホス
             ト名でも数値アドレスでもかまいません。

     hostnames yes | no
             yes が指定されると、情報の表示の際、ホスト名が使用されます。 no
             が与えられると、代わりに数値アドレスが使用されます。コマンドライ
             ンの -n スイッチによって変えられていなければ、デフォルトは yes に
             なります。

     keyid keyid
             このコマンドで、認証設定リクエストに使われる鍵番号を指定できま
             す。この番号は、サーバが認証のために使うよう設定した鍵番号に対応
             していなければなりません。

     raw     問い合わせコマンドに対するすべての出力を、リモートサーバから受け
             取った通りに出力します。データに対して行なわれる唯一の整形と解釈
             は、印字できる (しかしめったに理解できない) 形になるように、ASCII
             文字でないデータを変換することだけです。

     timeout milliseconds
             サーバへの問い合わせに対する応答の制限時間を指定します。デフォル
             トは、約 5000 ミリ秒です。 ntpq はそれぞれの問い合わせに対して時
             間切れを待ったあと再試行するため、合計の待ち時間は設定された制限
             時間の値の 2 倍になることに注意してください。

   B>制B>御B>メB>ッB>セB>ーB>ジB>コB>マB>ンB>ド
     ある NTP サーバが知っている各通信相手には、アソシエーション識別子 (asso-
     ciation identifier) という 16 ビット整数が割り当てられています。 peer 変
     数を使う NTP 制御メッセージは、アソシエーション識別子を含めることによっ
     て、その値が対応する通信相手を識別しなければなりません。 0 というアソシエ
     ーション識別子は特別で、その変数がシステム変数であることを表します。シス
     テム変数の名前は、独立した名前空間から取りだされます。

     制御メッセージコマンドは、サーバに 1 つ以上の NTP モード 6 メッセージを送
     り、戻ってきたデータを何らかの書式で出力します。現在実装されているほとん
     どのコマンドは、 1 つのメッセージを送って、1 つの応答を受け取ります。今の
     ところ例外は、必要なデータを得るためにあらかじめプログラムされた一連の
     メッセージを送る peers コマンドと、アソシエーションを越えた範囲で繰り返す
     mreadlistmreadvar コマンドです。

     associations
             問い合わせ対象のサーバの規格内 (in-spec) の通信相手についての、ア
             ソシエーション識別子と通信相手の状態の一覧を得て出力します。一覧
             は複数の欄から成っています。最初の欄は、内部使用のために 1 から
             振ったアソシエーションの索引番号 (index)、 2 番目はサーバから返っ
             て来た実際のアソシエーション識別子、 3 番目は通信相手の状態ワード
             です。その後に、状態ワードをデコードしたデータを含む欄がいくつか
             続きます。 associations コマンドによって返されたデータは ntpq の
             内部でキャッシュされるということに注意してください。このため、索
             引番号は、人間にはほとんど打ち込むることができないアソシエーショ
             ン識別子を使う愚かなサーバを相手にするときに役立ちます。すなわ
             ち、それ以降の任意のコマンドが引数としてアソシエーション識別子を
             必要とするときに、代わりに ``&index'' という形を使うことができま
             す。

     clockvar [assocID][<variable_name>[=<value>][,...]]

     cv [assocID][<variable_name>[=<value>][,...]]
             サーバの時計変数 (clock variable) の一覧を送るように要求します。
             ラジオ時計や他の外部同期機構を持っているサーバは、このコマンドに
             肯定的に応答します。アソシエーション識別子が省略されるか 0 だと、
             リクエストは "システム時計" の変数に対するものとなり、一般に、時
             計を持つすべてのサーバから肯定的な応答が得られるでしょう。サーバ
             が時計を擬似的な通信相手として扱い、結果として一度に 2 つ以上の時
             計を接続することができるようになっていれば、適切な通信相手のアソ
             規格外 (out-of-spec) のクライアントとのアソシエーションを含む全て
             のアソシエーションに関するデータを、内部にキャッシュされたアソシ
             エーションの一覧から出力します。このコマンドは、fuzzball を扱う場
             合だけ、 passociations と異なります。

     lpeers  peers と似ていますが、サーバが状態を保持しているすべてのアソシエ
             ーションの概要を出力します。これは fuzzball サーバの、より長い通
             信相手のリストを生成することがあります。

     mreadlist assocID assocID

     mrl assocID assocID
             readlist コマンドと似ていますが、問い合わせを (0 でない) アソシエ
             ーション識別子の範囲のそれぞれに行ないます。ここで言う範囲は、直
             前に実行された associations コマンドでキャッシュされたアソシエー
             ションの一覧から決められます。

     mreadvar assocID assocID [<variable_name>[=<value>][,...]]

     mrv assocID assocID [<variable_name>[=<value>][,...]]
             readvar コマンドと似ていますが、問い合わせを (0でない) アソシエー
             ション識別子の範囲のそれぞれに行ないます。ここで言う範囲は、直前
             に実行された associations コマンドでキャッシュされたアソシエー
             ションの一覧から決められます。

     opeers  古い形式の peers コマンドで、参照 ID の代わりにローカルのインタ
             フェースアドレスを使用します。

     passociations
             内部でキャッシュされたアソシエーションの一覧から、規格内 (in-
             spec) の通信相手に関するアソシエーションのデータを出力します。こ
             のコマンドは、新しい問い合わせをするのではなく内部に蓄えられたデ
             ータを表示するということを除けば、 associations と同じに働きま
             す。

     peers   サーバの規格内の通信相手の一覧を、各通信相手の状態の概要と共に得
             ます。概要の情報には、リモートの通信相手のアドレス、参照 ID (不明
             のときは 0.0.0.0)、リモートの通信相手の階層 (stratum)、通信相手の
             種類 (ローカル、ユニキャスト、マルチキャスト、ブロードキャストの
             いずれか)、最後のパケットを受信した時間、秒単位のポーリング間隔、
             8 進数表記の到達可能性レジスタ、そして、その通信相手の現在の遅
             れ、オフセット、ばらつきをミリ秒単位で表した推定値を含んでいま
             す。

             左端の文字は、時計選択処理におけるこの通信相手の運命を示します。
             以下はこれらの文字のリストと、 rv コマンドで使用される片言の英
             語、および状態を示す短い説明文です。

             空白    (reject) 通信相手は到達できないか、このサーバに同期してい
                     るか (同期ループ)、あるいは無茶な同期距離のために捨てられ
                     ました。

                     べ換えられたなかで最初の 6 個に入りませんでした。アソシエ
                     ーションが短命だった場合、リソースを節約するために解散さ
                     せられるかもしれません。

             *       (sys.peer) 通信相手はシステム通信相手として宣言されてお
                     り、その変数をシステム変数に与えています。

             o       (pps.peer) 通信相手はシステム通信相手として宣言されてお
                     り、その変数をシステム変数に与えています。しかし、システ
                     ムの実際の同期は 1 秒ごとのパルス (PPS) 参照クロックドラ
                     イバより間接的に、あるいはカーネルインタフェースより直
                     接、 PPS 信号で得ています。

             flash 変数は NTP 仕様書では定義されていませんが、デバッグを助ける
             貴重なものとして含められています。この変数は NTP 仕様書で TEST1
             から TEST9 まで定義されているパケットの健全性チェックの結果を表示
             します。各テストのビットは最も重要でないビットから順番に増え、ま
             た以下のように定義されています。

             以下の TEST1 から TEST4 は手続きエラーを列挙します。パケットのタ
             イムスタンプは信用されたりされなかったりしますが、残っているヘッ
             ダデータは無視されます。

             TEST1   パケットが重複しています。どこかからのコピーです。

             TEST2   間違ったパケットです。以前に送ったメッセージに対する返答
                     ではありません。 NTP デーモンが再起動されていて、通信相手
                     が気付く前だったときに起こります。

             TEST3   同期していません。 1 つ以上のタイムスタンプ・フィールドが
                     ありません。通常、通信相手からの最初のパケットが受けとら
                     れた時に起こります。

             TEST4   通信相手の遅延または通信相手のばらつきのどちらかが 1 秒よ
                     りも長いです。冗談はやめてください。

             以下の TEST5 から TEST10 はパケットヘッダのエラーを列挙します。パ
             ケットは中身を調べることなく捨てられます。

             TEST5   暗号認証に失敗しました。 ntp.conf(5) マニュアルページの "
                     認証機能のサポート" 節を参照してください。

             TEST6   通信相手は同期していません。先に通信相手の時計のネジを巻
                     いてください。

             TEST7   通信相手の階層が 15 よりも大きいです。通信相手はおそらく
                     同期していません。

             TEST8   root の遅延または root のばらつきが 1 秒よりも長いです。
                     家から遠すぎます。

             TEST9   通信相手の暗号認証に失敗しました。鍵の識別子または鍵が間
             内部変数リストの中の変数の値を返すようにサーバに要求します。アソ
             シエーション識別子が省略されるか 0 の場合、変数はシステム変数であ
             るとみなされます。そうでなければ、 peer 変数として扱われます。内
             部変数リストが空の場合は、リクエストはデータ無しで送られ、リモー
             トサーバはデフォルトの表示を返します。

     readvar [assocID][<variable_name>[=<value>][,...]]

     rv [assocID][<variable_name>[=<value>][,...]]
             変数読み取りリクエストを送ることで、指定した変数の値を返すように
             サーバに要求します。アソシエーション識別子を省略するか 0 を指定し
             た場合、変数はシステム変数です。そうでなければ peer 変数であり、
             返される値は対応する通信相手のものとなります。変数のリストを省略
             すると、データ無しのリクエストを送り、サーバはデフォルトの表示を
             返します。

     writevar assocID <variable_name>=<value>[,...]
             readvar リクエストと似ていますが、指定した変数を読み取る代わりに
             書き込みます。

     writelist [assocID]
             readlist リクエストと似ていますが、内部のリストの変数を読み取る代
             わりに書き込みます。


関連項目

     ntp.conf(5), ntpd(8), ntpdc(8)


歴史

     Toronto 大学の Dennis Ferguson によって書かれました。


バグ

     peers コマンドは不可分 (atomic) ではないため、不正なアソシエーションとい
     う誤ったエラーメッセージが発生しコマンドが終了することがあります。時間切
     れまでの時間は固定された定数です。これは、ある種の最悪の場合を考えてある
     ため、時間切れになるまで長時間待たされることになります。このプログラム
     は、特定のホストへ何回も問い合わせを送る間に制限時間の見積もりを改善すべ
     きですが、実際には行なっていません。

FreeBSD 4.4                     January 7, 2000                    FreeBSD 4.4

ABELNET VPSサービス