В Unix (Solaris) есть ли команда, которая возвращает имя хоста и имя домена вместе?
Например:
hostname -> servername
domainname -> us.xyz.com
Я нуждаюсь : servername.us.xyz.com
В Unix (Solaris) есть ли команда, которая возвращает имя хоста и имя домена вместе?
Например:
hostname -> servername
domainname -> us.xyz.com
Я нуждаюсь : servername.us.xyz.com
Ответы:
Команда
hostname --fqdn (or -f)
может также делать то, что вы хотите или нет, так как в моей системе я получаю (none)
при запускеdomainname
hostname(1)
Solaris 10 (на sun4v) и каждой старой версии, которую я использовал, --fqdn
она недоступна. Он просто пытается установить имя хоста в --fqdn
. Если вы запускаете его как не-суперпользователь для безопасности, он говорит «uname: ошибка в имени параметра: не владелец». Это явно сток солярис hostname
. На плакате не указано, установлен ли на них набор инструментов GNU.
Этот тоже давал мне покоя годами. Я просто работаю над этим, говоря
$(hostname).$(domainname)
Вы можете определить функцию оболочки или псевдоним:
fqdn () {
echo $(hostname).$(domainname)
}
domainnname
на самом деле сообщает ваш домен NIS, если вы используете NIS. Это не обязательно совпадает с вашим доменным именем DNS.
hostname --fqdn | cut -d. -f2-4
hostname --fqdn
устанавливает имя хоста в «--fqdn», который, вероятно , плохая идея (поэтому убедитесь , что вы не корень , если вы попробуете его). :) --fqdn
Поддерживается на Solaris 11?
проверить имя хоста | awk '{print $ NF}'
Я знаю, что это старая ветка, но мне нужно было извлекать имя хоста и имя домена отдельно в сценарии.
Ответ ealgumby на использование check-hostname был чем-то, чего я никогда раньше не видел, поэтому я попытался добиться большого успеха для своих нужд. Я бы отметил это как полезное, но, очевидно, у меня нет представителя, чтобы сделать это.
Я установил домен следующим образом, просматривая вывод check-hostname.
domain=`check-hostname | nawk -F\. '{for(i=2; i<NF;i++){printf $i"."}printf $NF"\n"}'`
fqdn=`hostname`'.'${domain}
Я ве сделал немного обходной путь для hostname
и host
:
$ host $(hostname -i) | awk '{print $NF }'
(Я использую Centos, но он должен работать в другом месте)
Получение домена без конечной точки:
$ host $(hostname -i) | awk '{print substr($NF, 1, length($NF)-1)}'
hostname -i
выведите IP-адрес, соответствующий имени хоста.
host
команду. Это даст вам что-то вроде этого: YOUR_IP.in-addr.arpa domain name pointer hostname.domainname.
с помощью awk я получу последний столбец, которыйhostname.domainname
host $(hostname -i)
список из 8 имен хостов, все с тем же IP, и без имени хоста, соответствующего моим хостам
host
команды? кажется, что ваша команда host
имеет псевдоним дляhost -a
На Солярисе это работало хорошо для меня: извините за обратный удар, это обратная кавычка рядом с номером 1 на клавиатуре qwerty или вы можете использовать $ (команду) в KSH
getent hosts (backtick) /usr/bin/hostname (backtick)
или
getent hosts $(/usr/bin/hostname)
пример:
root@melauto:[/]# getent hosts $(/usr/bin/hostname)
10.4.19.241 melauto.sro.vic.gov.au melauto loghost
root@melauto:[/]#
getent запрашивает текущий механизм поиска имени, как указано в /etc/nsswitch.conf, и возвращает информацию, соответствующую поиску, здесь она возвращает информацию, найденную в /etc/hosts
. если вы ищите информацию о хосте для другого хоста, который не находится внутри /etc/hosts
, он будет искать в DNS при условии, что это определено в/etc/nsswitch.conf
В сценарии Unix bash в Sun Solaris 10 я просто отображал имя своего хоста следующим образом:
echo "Мое имя хоста - $ (имя хоста)"
printf "%s" "$(hostname) $(domainname)"
работает?