Linux修改hostname
檢視主機hostname的方式
shell> hostname rac4 shell> cat /proc/sys/kernel/hostname rac4 shell> cat /etc/sysconfig/network NETWORKING=yes HOSTNAME=rac4
修改hostname
# 通過hostname命令修改hostname,立即生效但重啟後會失效 shell> hostname RAC3 同立即生效但重啟後會失效 shell> echo RAC3 > /proc/sys/kernel/hostname shell> sysctl kernel.hostname=RAC3 kernel.hostname = RAC3 # 通過network檔案中的hostname,重啟後生效 shell> vi /etc/sysconfig/network ==================================================== NETWORKING=yes HOSTNAME=RAC3 ==================================================== shell> shutdown -r now
hostname與/etc/hosts的關係
hosts檔案的作用相當如DNS,提供IP地址到hostname的對應。Linux系統在向DNS伺服器發出域名解析請求之前會查詢/etc/hosts檔案,如果裡面有相應的記錄,就會使用hosts裡面的記錄。/etc/hosts檔案通常裡面包含這一條記錄
127.0.0.1 localhost.localdomain localhost
hosts檔案格式是一行一條記錄,分別是IP地址 hostname aliases,三者用空白字元分隔,aliases可選。
127.0.0.1到localhost這一條最好不要修改,因為很多應用程式會用到這個,比如sendmail,修改之後這些程式可能就無法正常執行。
修改hostname後,如果想要在本機上用newhostname來訪問,就必須在/etc/hosts檔案裡新增一條newhostname的記錄。
more /etc/hosts 127.0.0.1 localhost localhost.localdomain 192.168.1.252 com.svoid svoid
這樣,就可以通過svoid或者com.svoid 來訪問本機。
從上面這些來看,/etc/hosts於設定hostname是沒直接關係的,僅僅當需要在本機上用新的hostname來訪問自己的時候才會用到/etc/hosts檔案,兩者沒有必然的聯絡。
但是如果預設hostname為 localhost 或 localhost.localdomain, 將會使用/etc/hosts中介面IP地址對應的 hostname 來重新設定系統的hostname。
問題重現
shell> more /etc/hosts 127.0.0.1 localhost localhost.localdomain 192.168.1.252 rac4 shell> more /etc/sysconfig/network #修改hostname NETWORKING=yes HOSTNAME=localhost shell> hostname localhost #修改hostname shell> shutdown -r now shell> hostname #重啟之後發現hostname沒變 rac4
檢視/etc/rc.d/rc.sysinit啟動指令碼
HOSTNAME=$(/bin/hostname) if [ -f /etc/sysconfig/network ]; then . /etc/sysconfig/network fi if [ -z "$HOSTNAME" -o "$HOSTNAME" = "(none)" ]; then HOSTNAME=localhost fi ipaddr= if [ "$HOSTNAME" = "localhost" -o "$HOSTNAME" = "localhost.localdomain" ]; then ipaddr=$(ip addr show to 0.0.0.0/0 scope global | awk '/[[:space:]]inet / { print gensub("/.*","","g",$2) }') for ip in $ipaddr ; do HOSTNAME= eval $(ipcalc -h $ip 2>/dev/null) [ -n "$HOSTNAME" ] && { hostname ${HOSTNAME} ; break; } done fi
參考:
http://www.cnblogs.com/yuechaotian/archive/2013/02/20/2918175.html
http://www.cnblogs.com/kerrycode/p/3595724.html
整理自網路
Svoid
2015-04-03
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29733787/viewspace-1551858/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- linux的hostname修改Linux
- Oracle Linux 7 修改 hostnameOracleLinux
- hostname修改理解心得-linuxLinux
- linux 修改hosts檔案以及修改hostnameLinux
- Linux 修改主機名(hostname)Linux
- 深入理解Linux修改hostnameLinux
- 修改Linux主機名Hostname (整理)Linux
- suse11如何修改hostname[Linux基礎]Linux
- [HPUX] HP Unix 修改hostnameUX
- linux CentOS6.x 修改主機名(Hostname)LinuxCentOS
- linux 配置hostnameLinux
- Ubuntu18.04 修改hostnameUbuntu
- Linux 修改本機 /etc/hosts 的 hostName 後經常不生效Linux
- solaris11修改時區、ip、hostname
- 【RAC】如何修改vip 或者vip 對應的hostname
- How to Change hostname in Oracle Linux 7OracleLinux
- <Linux系統hostname命令詳解>Linux
- 新版本linux更新hostname的方法Linux
- Linux下 /etc/hostname 格式及解釋Linux
- 【故障處理】修改主機名導致oracle例項無法啟動暨如何修改hostnameOracle
- Linux基礎命令—顯示主機名hostnameLinux
- Linux基礎命令---顯示主機名hostnameLinux
- URL hostname 屬性
- ubuntu 18.04 更改 hostnameUbuntu
- linux openfiles修改Linux
- Linux修改IPLinux
- anacond 或python3 報check_hostname requires server_hostname錯誤PythonUIServer
- Linux 修改時間Linux
- Linux修改時間Linux
- linux 修改 dns 配置LinuxDNS
- Linux下修改IPLinux
- linux修改IP地址Linux
- linux引數修改Linux
- 我使用過的Linux命令之hostname - 顯示或設定主機名Linux
- 轉:Linux hostname主機名配置檔案與檔案 /etc/hosts解說Linux
- 【Redis】錯誤:failed: Hostname must not be empty or nullRedisAINull
- java.lang.IllegalStateException: Service id not legal hostnameJavaException
- 使用hostname方式連線資料庫!資料庫