Que distro? No meu sistema Ubuntu 12.04, todos os 3 funcionam.
Anthon
Qual sistema operacional você está usando? Se Linux, qual distribuição? Quais são os conteúdos /etc/hostname?
terdon
1
hostname -fusa DNS, você tem uma entrada DNS reversa para o seu IP?
Barmar
@terdon Estou usando RHEL5 (Red Hat Enterprise Linux versão do servidor 5,7 (tikanga)) e não existe tal arquivo (/ etc / hostname)
REDOC
@ Barmar Não tenho o DNS configurado no meu host. Eu adicionei o endereço IP e o fqdn no meu arquivo hosts (/ etc / hosts). Esse erro é resultado do DNS não estar configurado?
O hostnamecomando retorna resultados do DNS e /etc/hosts.
hostnameé equivalente a uname -ne é o "nome do host" ou "nome do nó" real da caixa.
Todos os outros hostnameargumentos usam esse nome de nó para procurar informações.
Portanto, antes de prosseguir, devo explicar o /etc/hostsformato do arquivo.
O primeiro campo é bastante óbvio, é o endereço IP para o qual todos os nomes de host na linha devem resolver. O segundo campo é o nome do host principal para esse IP. Os campos restantes são aliases.
Portanto, se você executá- hostname -flo, primeiro tentará resolver o IP do seu nome de nó. Dependendo de como você tem a hosts:entrada configurada /etc/nsswitch.confneste método, poderá variar.
Se você o tiver configurado para usar o DNS, ele usará os domínios de pesquisa configurados /etc/resolv.confaté receber um IP de volta do DNS.
Se você o tiver configurado para usar arquivos, ele procurará /etc/hostsuma linha em que o nome do host principal ou o nome alternativo seja seu nome de nó atual ( uname -n) e, em seguida, retorne o endereço IP nessa linha.
Depois de ter o IP, ele tentará uma pesquisa inversa nesse IP. Novamente, ele usará o DNS para esse arquivo e o seu host, com base no seu nsswitch.conf. No caso de usar o arquivo hosts, ele retornará a entrada principal (que é o primeiro campo após o IP no arquivo).
hostname -afuncionará apenas com o arquivo hosts, pois fazer uma pesquisa inversa no DNS fornece apenas 1 resultado. Com o arquivo hosts, ele retorna os alises na linha correspondente (que é tudo após a primeira entrada, o nome do host principal).
Portanto, em resumo, o motivo provável do seu problema é que você não tem nenhuma entrada /etc/hostsque contenha seu nome de host ( uname -n).
Exemplos
Se o seu nome de nó for 'foobar' e você tiver uma entrada /etc/hostscomo esta:
Essa explicação de como obtém o valor é ótima! Eu tinha meu FQDN no final da linha 127.0.0.1 que tinha como nome de host principal localhost. Acabei de excluí-los e deixei o FQDN apenas na linha que possui o IP real e corrigi meu problema de nome do host -f retornando host local.
/etc/hostname
?hostname -f
usa DNS, você tem uma entrada DNS reversa para o seu IP?Respostas:
(copiado de uma das minhas respostas no SF )
O
hostname
comando retorna resultados do DNS e/etc/hosts
.hostname
é equivalente auname -n
e é o "nome do host" ou "nome do nó" real da caixa.Todos os outros
hostname
argumentos usam esse nome de nó para procurar informações.Portanto, antes de prosseguir, devo explicar o
/etc/hosts
formato do arquivo.O primeiro campo é bastante óbvio, é o endereço IP para o qual todos os nomes de host na linha devem resolver. O segundo campo é o nome do host principal para esse IP. Os campos restantes são aliases.
Portanto, se você executá-
hostname -f
lo, primeiro tentará resolver o IP do seu nome de nó. Dependendo de como você tem ahosts:
entrada configurada/etc/nsswitch.conf
neste método, poderá variar./etc/resolv.conf
até receber um IP de volta do DNS./etc/hosts
uma linha em que o nome do host principal ou o nome alternativo seja seu nome de nó atual (uname -n
) e, em seguida, retorne o endereço IP nessa linha.Depois de ter o IP, ele tentará uma pesquisa inversa nesse IP. Novamente, ele usará o DNS para esse arquivo e o seu host, com base no seu
nsswitch.conf
. No caso de usar o arquivo hosts, ele retornará a entrada principal (que é o primeiro campo após o IP no arquivo).hostname -a
funcionará apenas com o arquivo hosts, pois fazer uma pesquisa inversa no DNS fornece apenas 1 resultado. Com o arquivo hosts, ele retorna os alises na linha correspondente (que é tudo após a primeira entrada, o nome do host principal).Portanto, em resumo, o motivo provável do seu problema é que você não tem nenhuma entrada
/etc/hosts
que contenha seu nome de host (uname -n
).Exemplos
Se o seu nome de nó for 'foobar' e você tiver uma entrada
/etc/hosts
como esta:Então você obterá os seguintes resultados de comando:
fonte