彻底解决7.x版本,Redhat修改主机名的方法

在使用Linux时,你是否常遇到修改Linux主机名后,重启了依然不成功的情况?如果没有,请略过此文,彼此不耽误工夫。如果遇到过,还是花几分钟看一下。


前言:

1、在redhat 6中永久修改主机名的方法为,在/etc/sysconfig/network中指定 HOSTNAME=newhostname,重启主机后重效。

2、 可是,在redhat 7中,这种方法就不行了。但/etc/sysconfig/network文件仍然存在,cat一下输出结果如下:

# Created by anaconda,

此文件中默认已没有了在redhat 6中熟悉的HOSTNAME=XXX配置参数了,即便手动在此文件中加入,也无效。

3、在redhat 7中,主机名称分成三种:

Transient临时主机名称相同(从网络配置中获得的 fallback 主机名)

Static默认静态主机名(用于在系统启动时设置内核的主机名)

pretty(灵活主机名)

其中,transient主机名和static主机名仅可包含 "-","a-z","0-9" 字符,且最大不超过64个字符长度,pretty主机名可以是任意字符任意长度。

这里仅介绍两种方法:(需求:要将bigdata113改为bigdata114)

一、vi /etc/hostname修改第一行文本

redhat 7在/etc目录下新增了一个hostname文件,该文件中的第一行文本文字,为识别的主机名,不识别第二行、第三行等字符。如果在/etc/hostname中设置的主机名称中包含有非 "-","a-z","0-9" 字符,Static仍然可以识别任意字符,但是Transient临时主机名称会抛弃不可包含的字符。

1)[root@bigdata113 ~]# vi /etc/hostname

bigdata114

说明: 修改后,立即对Static主机名称生效,但对Transient和pretty,则需要重起操作系统后才能生效。

2)可通过hostname命令查看

[root@bigdata113 ~]# hostname

bigdata113

可见,hostname命令获取的是Transient名称

针对redhat 7,可用新增的hostnamectl命令获取的名称信息:

[root@bigdata113 ~]# hostnamectl         

Static hostname: bigdata114

Transient hostname: bigdata113         

Icon name: computer-vm           

Chassis: vm     

Machine ID: af19d0f544e64a3ca508be36e33ee1f7           

Boot ID: c0e394069977425a9dd4fc6bc681f83f   

Virtualization: vmware 

Operating System: Red Hat Enterprise Linux Server 7.4 (Maipo)       

CPE OS Name: cpe:/o:redhat:enterprise_linux:7.4:GA:server           

Kernel: Linux 3.10.0-693.el7.x86_64     

Architecture: x86-64

上面看到Static hostname显示的是/etc/hostname文件中配置的原始名称

二、  使用hostnamectl命令修改主机名称

hostnamectl是redhat 7才有的命令,它可以修改pretty(易读主机名)、Static(内核静态主机名)与Transient(临时主机名称相同名)等。

1)如果hostnamectl不指定名称类型,直接set-hostname,则会将Static、Transient改成相同的名称,并且同步更新/etc/hostname文件内容,立即生效,而pretty的名称,则被置空。

不允许名称以“#”号打头

[root@bigdata113 ~]# hostnamectl set-hostname bigdata114

[root@bigdata113 ~]# hostname

bigdata114

2)如果指定了名称类型。比如只修改transient类型的名称:

[root@bigdata113 ~]# hostnamectl --transient  set-hostname bigdata114,则只对该类型有效。其他类似。

测试如下:

[root@bigdata113 ~]# hostnamectl --transient set-hostname test

[root@bigdata113 ~]# hostname

bigdata114

[root@bigdata113 ~]# hostnamectl

Static hostname: bigdata114

Transient hostname: test         

Icon name: computer-vm           

Chassis: vm       

Machine ID: af19d0f544e64a3ca508be36e33ee1f7           

Boot ID: c0e394069977425a9dd4fc6bc681f83f   

Virtualization: vmware 

Operating System: Red Hat Enterprise Linux Server 7.4 (Maipo)       

CPE OS Name: cpe:/o:redhat:enterprise_linux:7.4:GA:server           

Kernel: Linux 3.10.0-693.el7.x86_64     

Architecture: x86-64
 

3)如果hostnamectl修改的主机名称不以“#”打头,但其中中含有不可识别的字符,则自动去除Transient、Static名称中不可识别的字符,将留下可识别的字符,而pretty名称,则为全字符如:

说明:上面命令行@后面的主机名,为主机的老名称,而用hostname输出的即是新名称。需要重新登陆,两个名称才能一致。

三、最后,还是改为bigdata114吧,直接命令:

hostnamectl set-hostname bigdata114 完成,常用快捷又方便。

谢谢各位小主,看到此处:)

参考鸣谢:https://blog.csdn.net/ljunjie82/article/details/81837830

—————————————————我也是有底线的—————————————————



 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值