Lo probé hostname
en varios servidores (RedHat, Ubuntu) y hostname -f
demostré ser poco confiable, devolviendo en algún momento solo el nombre corto (como se describe en esta pregunta ).
Puedo ver el fqn en los alias: hostname -a
(uno de los alias es el fqn que busco), pero el orden de los alias no es fijo.
¿Hay alguna otra forma de obtener el nombre totalmente calificado de manera confiable y almacenarlo en una variable bash?
Respuestas:
Probé esto en CentOS5:
host -TtA $SERVERNAME|grep "has address"|awk '{print $1}'
Tengo que consultar mi DNS en modo TCP. Si UDP funciona en su entorno, deje de lado la opción "T".
Nota: en un invitado Ubuntu (VirtualBox) no funcionará:
Entonces, para cubrir todos los casos:
fuente
host -TtA $(hostname -s)|grep "has address"|awk '{print $1}'
trabajando en mis servidores RedHatAquí hay una forma en que encontré el fqn:
En otras palabras, tenía
nslookup
la dirección IP, que me da algo como:A partir de ahí, fue solo una cuestión de eliminar lo que no quería, a través de manipulaciones de bash string .
Tal vez hay una manera más simple?
fuente
Su método solo funciona si ha configurado correctamente su nombre de host, y tiene la configuración correcta de dns, etc. Si tiene todo eso, entonces ya conoce su fqdn.
No hay una forma confiable de obtener el fqdn. Una sola dirección IP puede tener varias fqdn, y una sola fqdn puede tener varias direcciones IP ... y muchas IP no tienen ninguna fqdn.
Si su máquina está conectada directamente a Internet, simplemente use la dirección IP y realice una solicitud de DNS inversa:
host 1.2.3.4
pero esto a menudo no le da la respuesta deseada (solo intente con Google, por ejemplo).
fuente
host
para obtener solo el registro A (o realice una búsqueda correspondiente).¿No te
hostname --fqdn
funciona?fuente
hostname --fqdn
devuelve el nombre corto, con el fqdn definido como uno de los alias de nombre de host.-f
y--fqdn
son lo mismo.En Ubuntu, puedes hacer
hostname -A
fuente
Para la alternativa multiplataforma, si no le importa usar python (se ejecuta al menos en python 2.7 y python 3)
fuente
Un método OS X safe bash only, que probablemente no funcionará con otros sabores * nix debido a variaciones en la salida del comando:
Python es probablemente su mejor apuesta para una amplia compatibilidad.
fuente