Gibt es unter Unix (Solaris) einen Befehl, der den Hostnamen und den Domänennamen zusammen zurückgibt?
Zum Beispiel:
hostname -> servername
domainname -> us.xyz.com
Ich brauche : servername.us.xyz.com
Gibt es unter Unix (Solaris) einen Befehl, der den Hostnamen und den Domänennamen zusammen zurückgibt?
Zum Beispiel:
hostname -> servername
domainname -> us.xyz.com
Ich brauche : servername.us.xyz.com
Antworten:
Der Befehl
hostname --fqdn (or -f)
könnte auch tun was du willst oder nicht, da ich auf meinem System bekomme, (none)
wenn ich laufedomainname
hostname(1)
Solaris 10 (auf sun4v) und jeder älteren Version, die ich verwendet habe, --fqdn
ist diese nicht verfügbar. Es wird nur versucht, den Hostnamen auf zu setzen --fqdn
. Wenn Sie es aus Sicherheitsgründen als Nicht-Superuser ausführen, wird "uname: Fehler beim Festlegen des Namens: Not owner" angezeigt. Dies ist offensichtlich die Aktie Solaris hostname
. Das Poster zeigt nicht an, ob das GNU-Toolset installiert ist oder nicht.
Dieser nervt mich auch schon seit Jahren. Ich arbeite einfach daran, indem ich sage
$(hostname).$(domainname)
Sie können eine Shell-Funktion oder einen Alias definieren:
fqdn () {
echo $(hostname).$(domainname)
}
domainnname
Meldet tatsächlich Ihre NIS-Domain, wenn Sie NIS ausführen. Dies muss nicht unbedingt mit Ihrem DNS-Domänennamen identisch sein.
hostname --fqdn | cut -d. -f2-4
hostname --fqdn
setzt den Hostnamen ‚--fqdn‘, die wahrscheinlich eine schlechte Idee ist (so stellen Sie sicher , dass Sie nicht als root , wenn Sie es versuchen). :) Wird --fqdn
Solaris 11 unterstützt?
check-hostname | awk '{print $ NF}'
Ich weiß, dass dies ein älterer Thread ist, aber ich musste den Hostnamen und den Domänennamen in einem Skript separat abrufen.
ealgumbys Antwort auf die Verwendung von check-hostname war etwas, was ich noch nie zuvor gesehen hatte, und ich habe versucht, es für meine Bedürfnisse mit großem Erfolg zu versuchen. Ich würde es als hilfreich markieren, aber anscheinend habe ich nicht den Repräsentanten, dies zu tun.
Ich stelle die Domain wie folgt ein und durchlaufe die Ausgabe von check-hostname.
domain=`check-hostname | nawk -F\. '{for(i=2; i<NF;i++){printf $i"."}printf $NF"\n"}'`
fqdn=`hostname`'.'${domain}
Ich habe einen kleinen Workaround für hostname
und gemacht host
:
$ host $(hostname -i) | awk '{print $NF }'
(Ich benutze Centos, aber es sollte woanders funktionieren)
Domain ohne nachgestellten Punkt erhalten:
$ host $(hostname -i) | awk '{print substr($NF, 1, length($NF)-1)}'
hostname -i
Gib auf meinem Ubuntu die IP-Adresse aus, die dem Hostnamen entspricht.
host
Befehl weiter. Das bringt dir so etwas: YOUR_IP.in-addr.arpa domain name pointer hostname.domainname.
mit awk bekomme ich die letzte Spaltehostname.domainname
host $(hostname -i)
gib mir eine Liste von 8 Hostnamen, alle mit der gleichen IP und keinen Hostnamen entsprechend meinen Hosts
host
Befehl haben? Ihr Befehl host
hat anscheinend einen Alias fürhost -a
Auf Solaris hat das gut funktioniert: Entschuldigung für das Backtick, es ist das umgekehrte Zitat neben der Nummer 1 auf einer QWERTY-Tastatur oder Sie können $ (Befehl) in KSH verwenden
getent hosts (backtick) /usr/bin/hostname (backtick)
oder
getent hosts $(/usr/bin/hostname)
Beispiel:
root@melauto:[/]# getent hosts $(/usr/bin/hostname)
10.4.19.241 melauto.sro.vic.gov.au melauto loghost
root@melauto:[/]#
getent fragt den Suchmechanismus für den aktuellen Namen ab, wie in /etc/nsswitch.conf angegeben, und gibt die Informationen zurück, die der Suche entsprechen. Hier werden die Informationen zurückgegeben, wie sie in gefunden wurden /etc/hosts
. Wenn Sie nach den Host-Informationen für einen anderen Host /etc/hosts
suchen , der sich nicht in befindet , wird in DNS gesucht, sofern dies in definiert ist/etc/nsswitch.conf
In einem Unix-Bash-Skript in Sun Solaris 10 habe ich meinen Hostnamen folgendermaßen angezeigt:
echo "Mein Hostname ist $ (Hostname)"
printf "%s" "$(hostname) $(domainname)"
nicht