Czy istnieje narzędzie do sprawdzania poprawności plików / etc / network / interfaces?

26

Zawsze lubię testować nowe pliki konfiguracyjne przed ich wdrożeniem - za pomocą narzędzi takich jak apachectl configtesti named-checkconf.

Często pojawiają się błędy, ale ich złapanie przed wdrożeniem eliminuje jakikolwiek wpływ. Tym, który kilka razy mnie ugryzł w tyłek, jest /etc/network/interfaces; Nie mogę znaleźć narzędzia do przetestowania go, a ponowne uruchomienie sieci na zdalnej maszynie, aby odkryć, że nie jest ona już dostępna, jest dość denerwujące - szczególnie, gdy używamy dużo łączenia i mostowania.

Bryan Agee
źródło

Odpowiedzi:

24

Aby rozwinąć odpowiedź @ jdthood ...

Jeśli interfejs jest już włączony, nadal możesz użyć tej metody do sprawdzenia poprawności /etc/network/interfacespliku. Na przykład zakładając, że masz błąd, możesz zobaczyć coś takiego:

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

Najwyraźniej w linii 11. wystąpił błąd. Świetnie. Dzięki niebiosom nie odrzuciłem sieci tylko po to, aby stracić dostęp do SSH!

Jeśli wszystko jest w porządku, zobaczysz:

$ sudo ifup --no-act eth0
ifup: interface eth0 already configured
Drew Noakes
źródło
9

Następujące czynności mogą zrobić, co chcesz.

ifup --no-act eth0
jdthood
źródło
6

Jeśli nie masz eth0, to nie zadziała, np .:

Ignoring unknown interface eth0=eth0.

Ale jeśli to zrobisz:

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

Z ok konfiguracji:

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

W przypadku konfiguracji niezadowalającej:

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
Båt Karl Patrik Andersson
źródło