LINUX.ORG.RU

hostname and fqdn в debian/ubuntu


0

1

всегда задавал hostname для серверов в виде fqdn.

однако неожиданно для себя открыл что в debian/ubuntu так не принято.

3.5.5. The hostname The kernel maintains the system hostname. The init script in runlevel S which is symlinked to «/etc/init.d/hostname.sh» sets the system hostname at boot time (using the hostname command) to the name stored in «/etc/hostname». This file should contain only the system hostname, not a fully qualified domain name.

в man`ах тоже самое:

/etc/hostname This file should only contain the hostname and not the full FQDN.

чтобы избежать частых обращений к dns они предлагают держать fqdn в /etc/hosts

собственно больше всего смущает то что системный вызов gethostname на таких машинах будет возвращать тоже короткую форму. а вслед за ним и конструкции вида:

perl -e 'use Sys::Hostname; print hostname, "\n"'
php -r 'echo gethostname (),"\n";'

получается на freebsd/centos вернет name.domain, а на debian/ubuntu просто name.

что imho уже не есть хорошо. придется адаптировать под это regexp`ы в своих скриптах.

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

★★

hostname, который ты вписываешь в стартовые конфиги, по сути своей является отдельной частью uname-информации процессов в uts-неймспейсе. Точно такой же частью является domainname. Т.е. грубо: uname.hostname+uname.domainname=FQDN. Вписывая в hostname FQDN, ты нарушаешь эту логику.

Не знаю на счет FreeBSD, но системный вызов gethostname() в linux возвращает uname.hostname.

Под рукой есть и centos и ubuntu - везде gethostname() отдает именно то, что указанно в sethostname(). А уж что ты там указываешь: FQDN или нет - дело твое.

Chumka ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.