Есть ли инструмент для проверки файлов / etc / network / interfaces?

26

Мне всегда нравится тестировать новые конфигурационные файлы перед их развертыванием - с помощью таких инструментов, как apachectl configtestи named-checkconf.

Редко возникают ошибки, но их обнаружение до развертывания исключает какое-либо влияние. Один , который укусил меня в зад в несколько раз /etc/network/interfaces; Кажется, я не могу найти инструмент для его тестирования, и перезапуск сети на удаленном компьютере, только чтобы обнаружить, что он больше недоступен, довольно раздражает, особенно когда мы используем много связей и мостов.

Брайан Эйджи
источник

Ответы:

24

Чтобы расширить ответ @ jdthood ...

Если интерфейс уже запущен, вы все равно можете использовать этот метод для проверки /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
Дрю Ноакс
источник
9

Следующее может сделать часть того, что вы хотите.

ifup --no-act eth0
jdthood
источник
6

Если у вас нет eth0, это не сработает, например:

Ignoring unknown interface eth0=eth0.

Но если вы делаете так:

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

С ок конфиг:

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

С не нормально ок:

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
Бат Карл Патрик Андерссон
источник