4

ホストの有限リストに対してアクションを実行する必要があるスクリプトがあります。ただし、/ etc / hostsファイルにホストを追加または削除するたびに、このスクリプトを更新する必要があります。

基本的に、私のhostsファイルは次のようになります。

192.168.100.1     hostip_1
192.168.100.2     hostip_2
192.168.100.10    hostip_3
192.168.100.20    hostip_5

私のスクリプト(bash)は次のようなことをします:

callmyfunction hostip_1
callmyfunction hostip_2
callmyfunction hostip_3
callmyfunction hostip_5

hostip_4をホストのリストに追加したい場合は、スクリプトを編集してリストに追加する必要があります。これは小さな編集ですが、それでもプロセスで忘れられる可能性のあるステップです(特に、システムに不慣れな人が入った場合)。

'hostip_1'がシステム内で有効なホスト名であるかどうかをテストする方法はありますか(ホストにpingを実行したり、/ etc / hostsファイルをgrepしたりする必要はありません)?複数のhostsファイルを使用する場合があり、構成ごとにファイル名が異なる場合があるため、単一のファイルをgrepしようとすることに頼ることはできません。私は私のためにその仕事をするためのシステムが必要です。

手がかりはありますか?

4

4 に答える 4

5

まず、hosts ファイルにないものについての私の声明は間違っています。それはまさに彼らがいる場所です。私の側では愚かです。

しかし、答えは次のとおりです。

getent hosts

これにより、すべてが印刷され、そこからルックアップを行うことができます。

于 2013-01-24T16:33:00.773 に答える
1

/etc/hosts ファイルにデータを入力しているため、DNS を使用していないと想定しています。したがって、以下のソリューションはユースケースに適合しません。しかし、それでもいくつかの指針が得られます。

動作中の DNS 環境では、以下のコマンドを使用して、対応する IP に対するホスト名を確認できます。

# host host_name

これにより、ホストの IP アドレスが得られます。ホスト名が存在しない場合は、対応するホストが見つからないというメッセージが表示されます。

上記のコマンドの出力を解析して、特定のホスト名が存在するかどうかを推測できます。

于 2013-01-24T16:32:28.467 に答える
0

すべてのターゲットが同じサブネット (同じネットワーク) にある場合は、 を使用します。ARParpingを使用して、ホストが使用可能であることを確認します。

于 2013-01-24T17:31:45.460 に答える