versuche "hostname -f" zu verwenden, das wird genug sein, hoffe ich
abhishek kumar srivastava 27.
Antworten:
14
Dies funktioniert, wenn Ihre Domain in der resolv.conf korrekt eingestellt ist. Sie können auch den von den anderen erwähnten Befehl domainname verwenden, wenn Ihr NIS-Domänenname mit Ihrer DNS-Domäne identisch ist.
Laut der Manpage für hostname(1)Solaris 10 (auf sun4v) und jeder älteren Version, die ich verwendet habe, --fqdnist 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.
Alexios
5
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:
domainnnameMeldet tatsächlich Ihre NIS-Domain, wenn Sie NIS ausführen. Dies muss nicht unbedingt mit Ihrem DNS-Domänennamen identisch sein.
Magellan
Nein, das ist es nicht. Aber da ich es geschafft habe, NIS zu umgehen, da es sich um Gelbe Seiten handelte, wusste ich das nie. :) So ist es eine zuverlässige Möglichkeit , die Domain - Namen zu erhalten , wenn die NIS ist anders?
Alexios
Sie sollten sich gesegnet fühlen, dass Sie NIS vermieden haben. Es ist nervig. Und selbst das Mozilla Thunderbird-Team hat das vermasselt, da es für die Standardantwort in 2.0 auf die Ausgabe von 'domainname' angewiesen war. Für den tatsächlichen Domainnamen verwende ichhostname --fqdn | cut -d. -f2-4
Magellan
1
Dies funktioniert gut unter Linux. Unter Solaris mindestens bis zu 10, hostname --fqdnsetzt den Hostnamen ‚--fqdn‘, die wahrscheinlich eine schlechte Idee ist (so stellen Sie sicher , dass Sie nicht als root , wenn Sie es versuchen). :) Wird --fqdnSolaris 11 unterstützt?
Alexios
1
Oy! Das versehentliche Festlegen des Hostnamens wäre ein Problem, und das OP sagte Solaris. Vielen Dank!
Synopsis / usr / sbin / check-hostname Beschreibung Das Skript check-hostname ist eine Migrationshilfe für sendmail (1M). Dieses Skript versucht, den vollqualifizierten Hostnamen (FQHN) des lokalen Hosts auf ähnliche Weise wie sendmail (1M) zu ermitteln. Wenn check-hostname die FQHN des lokalen Hosts ermitteln kann, wird der Erfolg gemeldet. Andernfalls gibt check-hostname an, wie das System neu konfiguriert werden muss, damit der FQHN ordnungsgemäß ermittelt werden kann.
Elegumby
/ usr / sbin / check-hostname meldet den vollqualifizierten Domänennamen (sofern definiert) auf Solaris-Systemen. Wenn Sie die Ausgabe an awk leiten und print $ NF verwenden, wird nur das letzte Ausgabefeld von check-hostname ausgegeben, das der vollqualifizierte Domänenname ist. Dies ist die direkteste Methode, die mir bekannt ist, um diese Informationen über die Befehlszeile abzurufen, vorausgesetzt, Sie haben einen vollständig qualifizierten Domänennamen. Wenn nicht, dann wird dies nicht funktionieren, aber ich hatte nicht das Bedürfnis, dies zu zeigen, da in diesem Fall Hostname alles ist, was Sie haben. Wenn Sie Solaris nicht verwenden, funktioniert dies ebenfalls nicht, die Abfrage wurde jedoch an Solaris gerichtet.
ealgumby
Im Ernst, ich verstehe nicht, wie dies die Frage nicht beantwortet, die lautete: "In Unix (Solaris) gibt es einen Befehl, der den Hostnamen und den Domainnamen zusammen zurückgibt?" Die Antwort lautet "Ja", und dieser Befehl lautet: check-hostname | awk '{print $ NF}'
ealgumby
3
Die eigentliche Antwort finden Sie in Ihren Kommentaren. Die Angabe eines einzeiligen Befehls mit wenigen (oder in Ihrem Fall keinen) Erklärungen ist keine Antwort, um die es auf dieser Website geht.
Rahmu
2
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.
hostname -iGib auf meinem Ubuntu die IP-Adresse aus, die dem Hostnamen entspricht.
Archemar
Ja, das ist richtig, also gebe ich diese IP an den 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
user1314742 06.07.15
Ich sehe, leider mit host $(hostname -i)gib mir eine Liste von 8 Hostnamen, alle mit der gleichen IP und keinen Hostnamen entsprechend meinen Hosts
Archemar
Sind Sie sicher, dass Sie keine Aliase für den hostBefehl haben? Ihr Befehl hosthat anscheinend einen Alias fürhost -a
user1314742
0
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 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/hostssuchen , der sich nicht in befindet , wird in DNS gesucht, sofern dies in definiert ist/etc/nsswitch.conf
printf "%s" "$(hostname) $(domainname)"
nichtAntworten:
Dies funktioniert, wenn Ihre Domain in der resolv.conf korrekt eingestellt ist. Sie können auch den von den anderen erwähnten Befehl domainname verwenden, wenn Ihr NIS-Domänenname mit Ihrer DNS-Domäne identisch ist.
quelle
Der Befehl
könnte auch tun was du willst oder nicht, da ich auf meinem System bekomme,
(none)
wenn ich laufedomainname
quelle
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 Solarishostname
. 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
Sie können eine Shell-Funktion oder einen Alias definieren:
quelle
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}'
quelle
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.
quelle
Ich habe einen kleinen Workaround für
hostname
und gemachthost
:(Ich benutze Centos, aber es sollte woanders funktionieren)
Domain ohne nachgestellten Punkt erhalten:
quelle
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 Hostshost
Befehl haben? Ihr Befehlhost
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
oder
Beispiel:
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
quelle
In einem Unix-Bash-Skript in Sun Solaris 10 habe ich meinen Hostnamen folgendermaßen angezeigt:
echo "Mein Hostname ist $ (Hostname)"
quelle