¿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
investigador
fuente
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.

Gravedad
fuente
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
1
h=$(hostname -f)
Grawity
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.

Alex
fuente