Чи є інструмент для перевірки файлів / etc / network / interface?


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

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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.