hostname and fqdn в debian/ubuntu
всегда задавал 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`ы в своих скриптах.
самому идея использования короткой нотации не нравится, но коллеги уже радостно используют такую схему. может в этом есть какой-то особенный смысл?