web-dev-qa-db-ja.com

/ etc / network / interfacesファイルを検証するツールはありますか?

apachectl configtestnamed-checkconfなどのツールを使用して、展開する前に新しい構成ファイルを常にテストします。

ミスが発生することはめったにありませんが、展開前にそれらをキャッチすることで、影響を排除できます。裏側で何度か噛みついたのは/etc/network/interfaces;です。私はそれをテストするツールを見つけることができないようであり、リモートマシンでネットワークを再起動して、それがもはや到達可能でないことを発見することだけは非常に迷惑です-特に多くのボンディングとブリッジングを使用する場合。

24
Bryan Agee

@ jdthood's answer ...を展開するには.

インターフェイスが既に起動している場合、このメソッドを使用して/etc/network/interfacesファイルを検証できます。たとえば、エラーがあると仮定すると、次のようなものが表示される場合があります。

$ Sudo ifup --no-act eth0
/etc/network/interfaces:11: unknown method
ifup: couldn't read interfaces file "/etc/network/interfaces"

どうやら11行目にエラーがあります。天に感謝します。SSHアクセスを失うためだけにネットワークをバウンスしませんでした!

すべてが正常な場合、次のように表示されます。

$ Sudo ifup --no-act eth0
ifup: interface eth0 already configured
24
Drew Noakes

以下はあなたが望むものの一部をするかもしれません。

ifup --no-act eth0
8
jdthood

Eth0がない場合、これは機能しません。例:

Ignoring unknown interface eth0=eth0.

しかし、あなたがこれを好きなら:

ifup -a --no-act ; echo "status: $?"

Ok configを使用:

ifup -a --no-act ; echo "status: $?"
run-parts  /etc/network/if-pre-up.d
run-parts  /etc/network/if-up.d
status: 0

Non-ok configの場合:

ifup -a --no-act ; echo "status: $?"
/etc/network/interfaces:12: option with empty value
ifup: couldn't read interfaces file "/etc/network/interfaces"
status: 1