¿Cómo puedo obtener el nombre de host de la máquina en la que trabajo?


7

Me pregunto cómo puedo obtener el nombre de host (nombre de dominio completo) de la máquina en la que estoy trabajando.

Aquí está mi guión:

 #! /bin/sh    
 hostname=$(host $ipaddr | awk '{print substr($NF,1,length($NF)-1)}')
 echo $hostname
 $h= get the current hostname
 if [ $hostname -ne $h ]
 then
//instructions
 fi

hostname -sdebería obtener el nombre de host corto (menos el resto del FQDN) ... es decir hostname=$(hostname -s)...?
Kinnectus

$HOSTLa variable de entorno contiene un nombre de host de la máquina.
theoden

1
¿Puede el OP actualizar la pregunta sobre si quieren el FQDN o solo el nombre de host "corto"?
Kinnectus

Sí, necesito un nombre de dominio completo.
investigador

echo $ HOST no muestra nada
investigador

Respuestas:


14

Use hostnameo uname -npara obtener el nombre de host del núcleo (nombre de nodo).

hostname -s dará solo el primer componente de la misma.

Utilícelo hostname -fpara obtener el FQDN; además, intenta traducir el nombre de host a una dirección IP y luego volver a un nombre de dominio.


resuelto con hostname -f, por favor, cómo puede modificar esta condición: $ h = obtener el nombre de host actual si [$ hostname -ne $ h] Muchas gracias.
investigador


var = $ (nombre de host -f) echo $ var if [$ nombre de host -ne $ var] [: Número ilegal:
investigador

if ["$ hostname"! = "$ var"] funciona bien :) Muchas gracias. Bests.
investigador

0

El uso de una variable de entorno puede ser complicado. Puede ser una cuestión del shell que está utilizando: algunos shells usan $ HOST, otros usan $ HOSTNAME. Iría con la opción uname -n que mencionó @grawity.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.