Wie erhalte ich den Hostnamen aus / etc / hostname und dem DNS-Domänennamen?

Antworten:

17

Wenn Sie tippen

hostname

Es zeigt Ihnen den Wert, der in gespeichert ist

/etc/hostname

Siehe hostname --helpfür eine Menge von Optionen. Aus der Hilfe ...

-s, --short            short host name
-a, --alias            alias names
-i, --ip-address       addresses for the host name
-I, --all-ip-addresses all addresses for the host
-f, --fqdn, --long     long host name (FQDN)
-A, --all-fqdns        all long host names (FQDNs)
-d, --domain           DNS domain name
-y, --yp, --nis        NIS/YP domain name
-b, --boot             set default hostname if none available
-F, --file             read host name or NIS domain name from given file

Dieser Befehl kann den Hostnamen oder den NIS-Domänennamen abrufen oder festlegen. Sie können auch die DNS-Domäne oder den vollqualifizierten Domänennamen (FQDN) abrufen. Sofern Sie nicht bind oder NIS für die Hostsuche verwenden, können Sie den vollqualifizierten Domänennamen (FQDN) und den DNS-Domänennamen (der Teil des vollqualifizierten Domänennamens ist) in der Datei / etc / hosts ändern.


So

hostname -f

für den langen Hostnamen (FQDN).

Rinzwind
quelle
Ich erhalte: "Hostname: Name oder Dienst nicht bekannt"
Dada Dudu
Hast du was drin /etc/hostname? Das hier bearbeiten wir normalerweise für Apache. Beispiel Thema: askubuntu.com/a/218499/15811
Rinzwind
Habe versucht, / etc / hosts zu cat. Ich bekomme einen localhost, den ich nicht sollte, da ich ihn auf einer VM laufen
dada dudu
1
@dadadudu localhostist nur ein Spitzname für "mich" in einem Netzwerk. Alle Computer (einschließlich VMs) können über die localhostAdresse eine Verbindung zu sich selbst herstellen .
Melebius
@dadadudu die VM, die ich hier habe, hat einen eigenen Namen (es heißt "test1").
Rinzwind
0

Vorausgesetzt, Sie möchten Ihre lokale (LAN) IPv4-Adresse ...

Um zu vermeiden, dass Ihr Server eine lange Zeichenfolge zurückgibt, die Ihre IPv4- und IPv6-Adressen kombiniert, verwenden Sie diese programmgesteuert in einem Bash-Skript:

LOCALIP=$(hostname -I | awk '{print $1}')

Oder tippe dies auf der CLI:

hostname -I | awk '{print $1}'
Mr Kartoffelkopf
quelle
Dies funktioniert nur gut, wenn der Host nur eine einzige IPv4-Adresse hat. IPv6-Hosts haben normalerweise mehrere IPv6-Adressen (eine permanente und eine oder mehrere temporäre).
David Foerster
Richtig. Aus diesem Grund lautet die erste Zeile meines Vorschlags "Vorausgesetzt, Sie möchten Ihre lokale (LAN-) IPv4-Adresse ...". Aus Ihrer Sicht ist "Hostname" jedoch nicht immer das beste Tool für IP-Informationen. Kommt auf das Ziel an. Das OP wurde in seiner / ihrer Frage nicht detailliert beschrieben, was sie wollten (vermutlich der FQDN, aber das sind Spekulationen von meiner Seite).
MrPotatoHead