Como obter o nome do host juntamente com o nome do domínio?

18

No unix (Solaris) existe algum comando que retorne o nome do host e o nome do domínio juntos?

Por exemplo:

hostname -> servername
domainname -> us.xyz.com

Eu preciso de: servername.us.xyz.com

    
por strugee 08.05.2012 / 19:05

8 respostas

15

Isso funcionará se o seu domínio estiver definido corretamente no resolv.conf. Você também pode usar o comando domainname que os outros mencionaram se o seu nome de domínio NIS é o mesmo que o seu domínio DNS.

echo 'uname -n'.'awk '/^domain/ {print $2}' /etc/resolv.conf'
    
por 09.05.2012 / 17:13
12

O comando

hostname --fqdn (or -f)

também pode fazer o que você quer ou não, já que no meu sistema eu recebo (none) quando eu corro domainname

    
por 09.05.2012 / 15:52
5

Este tem me incomodado há anos também. Eu apenas trabalho com isso dizendo

$(hostname).$(domainname)

Você pode definir uma função ou um alias do shell:

fqdn () {
    echo $(hostname).$(domainname)
}
    
por 09.05.2012 / 11:43
4

check-hostname | awk '{print $ NF}'

    
por 20.03.2013 / 18:25
2

Eu sei que este é um tópico mais antigo, mas eu precisei puxar o nome do host e o nome do domínio separadamente em um script.

A resposta da ealgumby para usar o check-hostname era algo que eu nunca tinha visto antes, então eu tentei um grande sucesso para as minhas necessidades. Eu iria marcá-lo como útil, mas aparentemente eu não tenho o representante para fazê-lo.

Eu configurei o domínio da seguinte maneira, fazendo um loop através da saída do check-hostname.

domain='check-hostname | nawk -F\. '{for(i=2; i<NF;i++){printf $i"."}printf $NF"\n"}''
fqdn='hostname''.'${domain}
    
por 14.11.2014 / 19:59
1

Eu fiz uma pequena solução alternativa para hostname e host :

$ host $(hostname -i) | awk '{print $NF }'

(Estou usando o Centos, mas ele deve funcionar em outro lugar)

Como obter o domínio sem o ponto final:

$ host $(hostname -i) | awk '{print substr($NF, 1, length($NF)-1)}'
    
por 06.07.2015 / 13:11
0

No Solaris, isso funcionou bem para mim: desculpe pelo backtick, é a citação invertida ao lado do número 1 em um teclado qwerty ou você pode usar $ (comando) no KSH

getent hosts (backtick) /usr/bin/hostname (backtick)

ou

getent hosts $(/usr/bin/hostname)

exemplo:

root@melauto:[/]# getent hosts $(/usr/bin/hostname)

10.4.19.241     melauto.sro.vic.gov.au melauto loghost
root@melauto:[/]# 

getent consulta o mecanismo de pesquisa de nome atual, conforme especificado em /etc/nsswitch.conf e retorna as informações que correspondem à pesquisa, aqui ele retorna as informações encontradas em /etc/hosts . se você procurar as informações do host para outro host que não esteja em /etc/hosts , ele procurará no DNS, contanto que seja definido em /etc/nsswitch.conf

    
por 19.12.2013 / 06:56
-2

Em um script Unix bash, no Sun Solaris 10, acabei de exibir meu nome de host por:

echo "Meu nome de host é $ (hostname)"

    
por 13.02.2013 / 16:23