/etc/network/interfacesがインターフェイスを起動できるかどうかを確認する方法は?

/etc/network/interfacesがインターフェイスを起動できるかどうかを確認する方法は?

Debianベースのヘッドレスボックスがあります。 Webインターフェイスを介してアクセスできるように設計されています。ネットワークが通過しました/etc/network/interfaces。ファイルが実際に有効であることを確認しようとしています。私の考えは、ファイルにエラーがあるかどうかを確認し、その場合はデフォルトのファイルに戻ることです。

私の質問は、質問の最初の部分であるdiscover error in filesに関するものですinterfaces

コマンドの使用について多くの質問がありましたifup --no-actが、実際に見たのは、このアプローチは私の状況に十分強力ではないということです。たとえば、

root@arm:~# ifup --no-act --interfaces=/etc/network/interfaces eth0
run-parts  /etc/network/if-pre-up.d
ip addr add 1s23.123.123.123/255.255.255.192 broadcast +          dev eth0 label eth0
ip link set dev eth0   up
 ip route add default via 123.123.123.122  dev eth0
run-parts  /etc/network/if-up.d

無効なIPアドレスセット(最初のオクテットに追加の「s」)を書き留めます。このコマンドはエラーを提供せず(とにかく表示されます)、この状態のファイルでコンピュータを再起動するとネットワーク機能が失われます。動作するinterfaces結果は非常に似ています(部分を除くbroadcast +)。

root@arm:~# ifup --no-act --interfaces=/etc/network/interfaces eth0
run-parts  /etc/network/if-pre-up.d
ip addr add 123.123.123.123/255.255.255.192 broadcast 123.123.123.127     dev eth0 label eth0
ip link set dev eth0   up
 ip route add default via 123.123.123.122  dev eth0
run-parts  /etc/network/if-up.d

これは主に私が避けたい問題です。私の質問は、/etc/network/interfacesファイル内の誤った設定を検出する方法です。プラス記号はエラーを示しますか?どういう意味ですか?この問題を解決するための最良の方法は何ですか?

ベストアンサー1

短い答え:ifup --no-actネットワーク設定を使用して電話をかけて戻りコードをテストして確認します。

長い答え:私は組み込みデバイスに対して非常に似た仕事をしてきました。これには、networking起動前に実行され、システムが有効なイーサネット設定を持つようにするために作成されたinitスクリプトの関連部分があります。

ETH0_CUSTOM=/var/myproject/etc/interfaces.eth0 
result=1

if [ -f "${ETH0_CUSTOM}" ]; then
    ifup -n -i "${ETH0_CUSTOM}" eth0
    if [ $? -eq 0 ]; then
        ln -sf "${ETH0_CUSTOM}" /etc/network/interfaces.eth0
        result=0
    else
        echo "Validating ${ETH0_CUSTOM} failed"
    fi
fi

if [ ${result} -ne 0 ]; then
    ln -sf /etc/network/interfaces.eth0.default /etc/network/interfaces.eth0
fi

元のバージョンでは/etc/network/interfaces有効な設定

source /etc/network/interfaces.eth0

おすすめ記事