En unix (Solaris), ¿hay algún comando que devuelva el nombre de host y el nombre de dominio juntos?
Por ejemplo:
hostname -> servername
domainname -> us.xyz.com
Necesito : servername.us.xyz.com
En unix (Solaris), ¿hay algún comando que devuelva el nombre de host y el nombre de dominio juntos?
Por ejemplo:
hostname -> servername
domainname -> us.xyz.com
Necesito : servername.us.xyz.com
Respuestas:
El comando
hostname --fqdn (or -f)
también podría hacer lo que quiera o no, ya que en mi sistema obtengo (none)
cuando ejecutodomainname
hostname(1)
Solaris 10 (en sun4v) y todas las versiones anteriores que he usado, --fqdn
no está disponible. Solo intenta establecer el nombre de host en --fqdn
. Si lo ejecuta como un no superusuario por seguridad, dice 'uname: error en la configuración del nombre: No propietario'. Obviamente, este es el stock de Solaris hostname
. El póster no indica si tienen o no el conjunto de herramientas GNU instalado.
Este también me ha estado molestando durante años. Solo trabajo alrededor diciendo
$(hostname).$(domainname)
Podría definir una función de shell o alias:
fqdn () {
echo $(hostname).$(domainname)
}
domainnname
en realidad informa tu dominio NIS si estás ejecutando NIS. Esto no es necesariamente lo mismo que su nombre de dominio DNS.
hostname --fqdn | cut -d. -f2-4
hostname --fqdn
establece el nombre de host en '--fqdn', lo que probablemente sea una mala idea (así que asegúrese de no ser root si lo intenta). :) ¿Es --fqdn
compatible con Solaris 11?
check-hostname | awk '{print $ NF}'
Sé que este es un hilo antiguo, pero tenía la necesidad de extraer el nombre de host y el nombre de dominio por separado en un script.
La respuesta de ealgumby al uso de check-hostname fue algo que nunca había visto antes, así que lo intenté con gran éxito para mis necesidades. Lo marcaría como útil, pero aparentemente no tengo el representante para hacerlo.
Configuré el dominio de la siguiente manera recorriendo la salida de check-hostname.
domain=`check-hostname | nawk -F\. '{for(i=2; i<NF;i++){printf $i"."}printf $NF"\n"}'`
fqdn=`hostname`'.'${domain}
He hecho una pequeña solución para hostname
y host
:
$ host $(hostname -i) | awk '{print $NF }'
(Estoy usando Centos pero debería funcionar en otro lugar)
Obtener el dominio sin punto final:
$ host $(hostname -i) | awk '{print substr($NF, 1, length($NF)-1)}'
hostname -i
imprima la dirección IP correspondiente al nombre de host.
host
comando. Esto te dará algo como esto: YOUR_IP.in-addr.arpa domain name pointer hostname.domainname.
con awk obtengo la última columna que eshostname.domainname
host $(hostname -i)
darme una lista de 8 nombres de host, todos con la misma IP, y ningún nombre de host correspondiente a mis hosts
host
comando? parece que su comando host
tiene un alias parahost -a
En Solaris esto funcionó bien para mí: perdón por el backtick, es la cita invertida junto al número 1 en un teclado qwerty o puede usar $ (comando) en KSH
getent hosts (backtick) /usr/bin/hostname (backtick)
o
getent hosts $(/usr/bin/hostname)
ejemplo:
root@melauto:[/]# getent hosts $(/usr/bin/hostname)
10.4.19.241 melauto.sro.vic.gov.au melauto loghost
root@melauto:[/]#
getent consulta el mecanismo de búsqueda de nombre actual como se especifica en /etc/nsswitch.conf y devuelve la información que coincide con la búsqueda, aquí devuelve la información como se encuentra en /etc/hosts
. si busca la información de host para otro host que no está en /etc/hosts
, se buscará en DNS siempre que sea lo que se define en/etc/nsswitch.conf
En un script bash de Unix, en Sun Solaris 10, acabo de mostrar mi nombre de host de la siguiente manera:
echo "Mi nombre de host es $ (nombre de host)"
printf "%s" "$(hostname) $(domainname)"
funciona