как ssh обнаруживает имена хостов в сети?

Существует несколько способов автоматически выполнить что-то после определенной команды:

функция

Создайте функцию, названную в честь Вашей определенной команды, и выполните определенную команду впоследствии. Это - по-моему, самое простое и самое чистое решение.

function myotherscript() {
   command myotherscript "$@"
   other_command_to_be_executed
}

zsh

С zsh можно создать a precmd функция, которая будет выполняться перед подсказкой. Это позволяет Вам выполнять произвольные другие команды, но необходимо будет определить выполняемую команду сами.

function precmd() {
   last_cmd=$(history -1 |  sed -e "s/^[ ]*[0-9]*[ ]*//g")
   case "$last_cmd" in
   *myscript*) other_command;;
   *myotherscript*) other_other_command;;
   esac
}

удар

Bash имеет PROMPT_COMMAND переменная, разрешающая Вам реализовать Ваше собственное precmd функция. Для использования его, необходимо установить его на команду, которая будет выполняться перед подсказкой:

PROMPT_COMMAND="${PROMPT_COMMAND};bash_precmd"

function bash_precmd() {
  last_command=$(history 1 | sed -e "s/^[ ]*[0-9]*[ ]*//g")
  case "$last_command"  in
  *pattern*) command ;;
  esac
}

Если Вы используете удар и хотите использовать что-то как preexec или precmd взгляните на precmd и предварительное должностное лицо с ударом

3
22.07.2013, 18:37
2 ответа

Это происходит, когда сервер в области поиска DNS, Вы настроили.

Например, моей текущей областью поиска является example.com:

$ grep ^search /etc/resolv.conf
search example.com

Я могу теперь сделать следующее прозрачно:

$ ping foo.example.com
PING foo.example.com (127.0.0.1) 56(84) bytes of data.
^C
$ ping foo
PING foo.example.com (127.0.0.1) 56(84) bytes of data.
^C

Области поиска позволяют автоматический перевод между названием машины и полностью определенным доменным именем (FQDN).

2
27.01.2020, 21:17
  • 1
    Мой resolve.conf имеет строку search example.com, таким образом, каково различие между search и domain? –  qed 22.07.2013, 16:07
  • 2
    Просто примечание, domain example.com настраивает локальный домен который значения по умолчанию области поиска к. Область поиска может дополнительно быть настроена с search example.com someextradomain.com –  Matt 22.07.2013, 16:09

Клиент OpenSSH использует стандартный сопоставитель DNS, обеспеченный Вашей операционной системой для разрешения имен хостов к IP-адресу.

hosts конфигурация в /etc/nsswitch.conf настраивает то, на что нужно посмотреть разрешить хосты и и в какой порядок.

Обычно большинство поисков будет завершено dns сопоставитель, который настроен в /etc/resolv.conf. Вероятно, необходимо связаться с человеком, который администрирует nameserver отмеченный в /etc/resolv.conf и попросите, чтобы они настроили имя хоста/IP для Вас, которое в Вашем случае 127.0.1.1, кажется, себя. Если у Вас есть динамический IP-адрес DHCP, это не могло бы быть возможно в зависимости от Вашей установки.

Если mdns или Многоадресная передача, DNS - то, что включает Ваш рабочий хост, Ваш новый хост, могла бы быть на другой подсети или не широковещательной передаче, это - имя.

3
27.01.2020, 21:17

Теги

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