Montag, 11. Februar 2008
Hostname ändern unter Linux
Manchmal ist es notwendig, den Hostname (=Rechnername) eines Servers zu ändern. Unter Windows gibt es dazu in den Systemeigenschaften die Registerkarte "Computername", wo dieser geändert werden kann. Wie aber geht dies unter Linux?
Auf Linux-Systemen ist dies nicht wesentlich komplizierter. Die folgende Vorgehensweise gilt für Debian Etch 4.0, sollte sich aber bei anderen Linux-Distributionen nicht oder zumindest nicht gravierend unterscheiden:
- In der /etc/hostname den Namen ändern.
- Sofern in der /etc/hosts auch entsprechende Einträge vorhanden sind, müssen diese ebenfalls abgeändert werden.
- Als nächsten Schritt noch Befehl "hostname [name]" absetzen.
- Um sicher zu gehen, dass der alte Hostname nicht noch in irgendwelchen Konfigurationen (z.B. Apache) enthalten ist, kann man dies mittels grep -lr "[alter hostname]" /etc/* überprüfen und gegebenenfalls ändern.
Nachdem man sich wieder neu eingeloggt hat, sollte dann der neue Hostname angezeigt werden. Ein Reboot des Systems ist ebenfalls noch empfehlenswert.
~# grep -Ri `hostname` /etc/ 2> /dev/null | while read line; do echo "$line" | awk -F: '{ print $1 }' | while read hfile; do sed -i "s/`hostname`/NEUER-HOSTNAME/g" $hfile; done; done;
~# reboot
Bye
//btw: Geht nur mit neueren Versionen des GNU sed, da der -i Parameter den steinzeitlichen Vorfahren unbekannt ist.
Dein Script, resp. der Befehl:
grep -Ri `hostname` /etc/ 2> /dev/null
bleibt aber immer hier hängen:
/etc/issue.net:Welcome to openSUSE 11.4 "Celadon" - Kernel %r (%t).
Was stimmt daran denn nicht?
lieben Gruß aus Hessen
den Hostname habe ich geändert, danke für den Tipp, aber der Windows PC sieht den Hostname nicht (geprüft mit nslookup und networkscan). Weiß du zufällig, wie kann ich beim Linux Server Hostname setzen, sodass auch Windows PC den mit Hostname erkennt? geht das ohne DNS Server und AD ?
Danke!
in /etc/samba/smb.conf
netbiosname=WUNSCHNAME