Проверьте, является ли IP статическим или динамическим программным

Чтобы выполнить ответ A.B. и для записи:

Параметры монтирования могут быть указаны внутри правил udev ... при определенных условиях. Когда я запускал тесты, я заметил, что некоторые опции:

приняты и соблюдены: ro, rw, nodev, noexec приняты и проигнорированы: comment=x-gvfs-show, не приняты, в этом они нарушают правило udev: mode=0XYZ, x-gvfs-show

В последнем случае нарушение правила udev означает udisk автоматически монтирует среду с параметрами по умолчанию.

] Тег udev MODE="0550", вы могли бы подумать, что он эквивалентен вызову опций Mount (ro) mount, игнорируется. Обратите внимание, что указание ro или rw не отображается в Nautilus, как вы ожидали. Странные разрешения, отображаемые Nautilus, остаются неизменными, тогда как попытка записи, если установлено ro, приведет к предупреждению и отказу в разрешении на запись. Bug?

И последнее, но не менее важное: может упорядочить запись /etc/fstab в то же время, когда вы укажете правило монтирования udev для данного устройства. Это приведет к конфликту и сообщению об ошибке, поскольку udisk будет конкурировать с вашим udev правилом для установки устройства. В этом нет ничего удивительного. Устройство все равно будет смонтировано (в моем случае, по правилу udev - пожалуйста, не спрашивайте, почему ...) и даже можно получить доступ.

HTH немного.

5
задан 10 June 2011 в 01:11

35 ответов

Я предполагаю, что вы ссылаетесь на назначение IP вашего компьютера ubuntu локально, а не на свой внешний / публичный IP.

Возможно, следующий результат может помочь:

cat / etc / network / interfaces | grep ^ iface \ eth0 | awk -F '' '{print $ 4}'

Это напечатает либо слово static, либо dhcp, в зависимости от текущей конфигурации интерфейса eth0.

Вы можете также выполняйте небольшие настройки, например:

cat / etc / network / interfaces | grep ^ iface \ | awk -F '' '{print $ 2, $ 4}'

, чтобы перечислить все интерфейсы и их конфигурацию.

-1
ответ дан 13 August 2018 в 15:48
  • 1
    Это не работает с NetworkManager, по умолчанию в Ubuntu. – enzotib 6 August 2011 в 23:37
  • 2
    Что вы подразумеваете под «не работая с NetworkManager»? Он не обновляется в соответствии с запущенной конфигурацией? Выход, конечно, работает нормально ... – Pavlos G. 7 August 2011 в 02:31
  • 3
    При использовании NetworkManager / etc / network / interfaces не содержат никакой информации об eth0 или wlan0 или аналогичных – enzotib 7 August 2011 в 02:33

Я написал эту команду, чтобы настроить DHCP-интерфейсы в сценарии оболочки:

  ps -A -o cmd |  grep -E '(/ |) dhclient.'   

Тогда вы можете отменить интерфейсы, которые не управляются dhclient .

На данный момент я не знаю, работает ли это для всех GNU / Дистрибутивы Linux.

0
ответ дан 13 August 2018 в 15:48

Другой способ - использовать инструменты NetworkManager, а именно nm-tool и nmcli .

Я написал следующий сценарий:

  #! / bin / sh # получить идентификатор соединения активного соединения get_con_id () {nm-tool |  awk '$ 1 == "-" {dev = $ 3 id = dev if (NF & gt; 4 & amp; & amp; match ($ 0, "\\ [(. *) \\]", a)) id = a [1  ]} / ^ / & amp; & amp;  $ 1 == "State:" & amp; & amp; & amp;  $ 2 == "connected" {print id} '} # получить тип адреса активного соединения nmcli con list id "$ (get_con_id)" |  awk '$ 1 == "ipv4.method:" {if ($ 2 == "manual") print "static" else if ($ 2 == "auto") print "dynamic" else print "unknown"}'   

Вероятно, он прерывается в нестандартных случаях, например где у вас более одного активного соединения, но может быть отправной точкой для разработки.

Также, если вы измените соединение, сценарий увидит новые настройки, даже если соединение не было перезапущены, поэтому они еще не используются.

0
ответ дан 13 August 2018 в 15:48

Вы можете поместить скрипты в /etc/network/if-up.d для запуска, когда активирован интерфейс (либо ifup , либо Network Manager). Эти сценарии получают информацию об интерфейсе, включая переменную среды $ METHOD , установленную на static или dhcp . Это документировано на странице интерфейсов (5) man .

  #! / Bin / sh ## Это /etc/network/if-up.d/  zzzz_alex_notify_myserver case $ LOGICAL in eth0) case $ METHOD в dhcp) & lt; уведомлять сервер, что он находится на DHCP & gt ;;;  static) & lt; уведомлять сервер о том, что он находится в статической конфигурации IP & gt ;;;  ESAC ;;  esac  
3
ответ дан 13 August 2018 в 15:48

Его гораздо проще определить, что:

Просто отключите машину от сети. Если вы видите ip-адрес в выводе ifconfig для этого интерфейса, тогда он динамически присваивается динамически.

рассматривает delaflota

-1
ответ дан 13 August 2018 в 15:48

Другие вопросы по тегам:

Похожие вопросы: