Как уже упоминалось here так Ubutnu 15.10 есть несколько различных схем именования сетевых интерфейсов поддерживаются:Предсказать имена интерфейсов, начиная с Ubuntu 15.10
- имена, включающие Firmware/BIOS при условии номера индексов для бортовых устройств (пример: eno1)
- имена, включающие прошивки/BIOS предусмотрено PCI Express слот автоопределения номера индексов (пример: ens1)
- имена, включающие физические/географическое расположение соединителя аппаратных средств (е Xample: enp2s0)
- имен, включающих MAC-адрес интерфейсов на нем (например: enx78e7d1ea46da)
- Classic, непредсказуемое ядро родной ethX имена (например, eth0) - амортизируется
Я пишу сценарий, принимает имя интерфейса с Grep:
if_name=$(ls /sys/class/net | grep "en")
, а затем изменяет его на ETH. Я протестировал скрипт на нескольких машинах, и все было в порядке, но есть ли вероятность, что имя интерфейса теперь может начинаться с других букв, и моя команда выше не будет работать? И если да, есть ли какие-то лучшие альтернативы?
Да есть лучший способ, чем сделать для него некоторый сценарий bash. Посмотрите, почему и как это было сделано [здесь] (https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/), и особенно раздел «Мне это не нравится, как мне отключить это? " – jbm
Спасибо, это именно то, что я делаю в своем скрипте, но до этого мне нужно вызвать текущее имя интерфейса и текущий MAC-адрес, который принадлежит его имени. –
Да, и поэтому вы не хотите этого в скрипте, но, скорее, автоматически при запуске системы, следуя указателям в «Мне это не нравится, как мне отключить это?». ссылка, которую я предоставил. В противном случае у вас проблема с курицей и яйцом. – jbm