Ubuntuで部分パケット損失を伴うping動作

Ubuntuで部分パケット損失を伴うping動作

私は特にUbuntuサーバーでpingを実行して返される変数を見ていますが、私が探している変数はエラー状態、stdoutの出力、stderrの出力です。

ホストをpingすると、次の3つの状況が発生する可能性があります。

  1. ホストはすべてのパケットに応答します(エラーなし)。
  2. ホストがパケット0の応答(エラー)
  3. ホストは一部のパケットに応答します(未指定の動作)。

man ping私はそれを何度も読んでいましたが、この状況で私が期待すべきものを見つけることができないようです。

これをテストできません。私がアクセスできる唯一のコンピュータは、Ubuntuを実行しているLinode仮想サーバーとSnow Leopardを実行しているMacbookです(おそらく私のサーバーで使用されているPINGプログラムと同じではありません)。

3番目のケースの戻り変数は何を期待すべきですか?

ベストアンサー1

LinuxとUbuntuでも複数のpingユーティリティを使用できます。基本項目(Ubuntuメインの唯一の項目)は次のとおりです。アイチルスiputils-ping)。 iputils 20100418以降、可能な戻り状態(pingIPv6ユーティリティまたは同伴IPv6ユーティリティの場合)は次のようになります。ping6

  • そのオプションを渡すと0です-V
  • 255ping権限を放棄できない場合(これは起こらないでください)。
  • トピック名の解析中にエラーが発生した場合は1ですping6 -N
  • 一般終了時 0 または 1:
    • 応答が受信されなかった場合は 1 です。
    • -w1またはオプションを使用して期限を設定し、-W受信した応答数が送信された要求数より少ない場合。
    • 0そうでない場合、つまり期限があり、予想されるすべての回答を受け取った場合、または期限がなく、1つ以上の回答を受け取った場合。
  • 2その他すべての場合。

より細かく区別する必要がある場合は、出力を解析する必要があります。ユーティリティはstderrを使用して致命的なエラーといくつかの警告を表示し、stdoutを使用してさまざまなステータスレポートと情報メッセージを表示します。これらのメッセージは人が消費するためのものなので、簡単に解析できるとは思わないでください。バージョンがリリースされるたびにパーサーを更新したり、他のプラットフォームで作業したい場合は、設定を覚えておく必要がありますLC_MESSAGES=C。 pingが翻訳されている場合(まだではない)、出力を解析する必要があるユースケースはほとんどありません。一般的に知っておくべきことは、2 = DNSルックアップ失敗、1 =ホストレスポンスなし、0 =成功です。

おすすめ記事