Sous unix (Solaris), existe-t-il une commande qui renvoie le nom d'hôte et le nom de domaine ensemble?
Par exemple:
hostname -> servername
domainname -> us.xyz.com
J'ai besoin : servername.us.xyz.com
Sous unix (Solaris), existe-t-il une commande qui renvoie le nom d'hôte et le nom de domaine ensemble?
Par exemple:
hostname -> servername
domainname -> us.xyz.com
J'ai besoin : servername.us.xyz.com
Réponses:
La commande
hostname --fqdn (or -f)
pourrait également faire ce que vous voulez ou non, car sur mon système, je reçois (none)
quand je coursdomainname
hostname(1)
Solaris 10 (sur sun4v) et toutes les anciennes versions que j'ai utilisées, elles --fqdn
ne sont pas disponibles. Il essaie simplement de définir le nom d'hôte sur --fqdn
. Si vous l'exécutez en tant que non-superutilisateur pour des raisons de sécurité, il indique «uname: erreur dans le nom du paramètre: Pas propriétaire». C'est évidemment le stock Solaris hostname
. L'affiche n'indique pas si le jeu d'outils GNU est installé ou non.
Celui-ci me dérange aussi depuis des années. Je travaille juste en disant
$(hostname).$(domainname)
Vous pouvez définir une fonction shell ou un alias:
fqdn () {
echo $(hostname).$(domainname)
}
domainnname
signale en fait votre domaine NIS si vous exécutez NIS. Ce n'est pas nécessairement le même que votre nom de domaine DNS.
hostname --fqdn | cut -d. -f2-4
hostname --fqdn
définissez le nom d'hôte sur '--fqdn', ce qui est probablement une mauvaise idée (alors assurez-vous que vous n'êtes pas root si vous l'essayez). :) Est --fqdn
pris en charge sur Solaris 11?
check-hostname | awk '{print $ NF}'
Je sais que c'est un fil plus ancien mais j'avais besoin de tirer le nom d'hôte et le nom de domaine séparément dans un script.
La réponse d'ealgumby à l'utilisation de check-hostname était quelque chose que je n'avais jamais vu auparavant, je l'ai donc essayé avec succès pour mes besoins. Je dirais que c'est utile mais apparemment, je n'ai pas de représentant pour le faire.
J'ai défini le domaine comme suit en parcourant la sortie de check-hostname.
domain=`check-hostname | nawk -F\. '{for(i=2; i<NF;i++){printf $i"."}printf $NF"\n"}'`
fqdn=`hostname`'.'${domain}
J'ai fait une petite solution de contournement pour hostname
et host
:
$ host $(hostname -i) | awk '{print $NF }'
(J'utilise Centos mais cela devrait fonctionner ailleurs)
Obtenir le domaine sans point de fuite:
$ host $(hostname -i) | awk '{print substr($NF, 1, length($NF)-1)}'
hostname -i
imprimez l'adresse IP correspondant au nom d'hôte.
host
commande. Cela vous donnera quelque chose comme ceci: YOUR_IP.in-addr.arpa domain name pointer hostname.domainname.
avec awk j'obtiens la dernière colonne qui esthostname.domainname
host $(hostname -i)
me donner une liste de 8 noms d'hôte, tous avec la même IP, et aucun nom d'hôte correspondant à mes hôtes
host
commande? il semble que votre commande host
ait un alias pourhost -a
Sur Solaris, cela a bien fonctionné pour moi: désolé pour le backtick, c'est la citation inversée à côté du numéro 1 sur un clavier qwerty ou vous pouvez utiliser $ (commande) dans KSH
getent hosts (backtick) /usr/bin/hostname (backtick)
ou
getent hosts $(/usr/bin/hostname)
exemple:
root@melauto:[/]# getent hosts $(/usr/bin/hostname)
10.4.19.241 melauto.sro.vic.gov.au melauto loghost
root@melauto:[/]#
getent interroge le mécanisme de recherche de nom actuel comme spécifié dans /etc/nsswitch.conf et retourne les informations qui correspondent à la recherche, ici il renvoie les informations telles que trouvées dans /etc/hosts
. si vous recherchez les informations d'hôte pour un autre hôte qui n'est pas dans /etc/hosts
, il cherchera dans DNS à condition que ce soit défini dans/etc/nsswitch.conf
Dans un script bash Unix, dans Sun Solaris 10, je viens d'afficher mon nom d'hôte par:
echo "Mon nom d'hôte est $ (nom d'hôte)"
printf "%s" "$(hostname) $(domainname)"
ne marche pas?