Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4161326
  • 博文数量: 517
  • 博客积分: 13065
  • 博客等级: 上将
  • 技术积分: 9320
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-26 16:44
个人简介

https://github.com/eyjian

文章分类

全部博文(517)

文章存档

2018年(20)

2017年(24)

2016年(37)

2015年(78)

2014年(56)

2013年(40)

2012年(89)

2011年(6)

2010年(19)

2009年(58)

2008年(90)

分类: 系统运维

2018-09-21 17:01:14

在安装一些系统时,需要修改hostname,比如安装Hadoop时需要修改主机名,而且主机名不能包含下划线。

实际上,主机名分三种(命令hostnamectl或hostnamectl status可查看三种主机名):

1) “pretty”主机名,UTF8格式的主机名,这个仅供阅读,长度无限制;

2) “static”主机名,日常所称的主机名(traditional hostname)。最多为64个字符,仅可包含“.”、“_”、“-”、“a-z”、“A-Z”和“0-9”这些字符,并且不能以“.”打头和结尾,也不能两个“.”连续;

3) “transient”主机名,内核维护的动态主机名,初始化为“static”主机名,默认为localhost。也为hadoop要求的主机名,它的约束规则同“static”主机名。如果存在“static”主机名,且不是“localhost”,那么将忽略“transient”主机名。“transient”主机名可被DHCPmDNS修改。


当三种主机名相同时,“hostnamectl status”只会显示“static”主机名,三种主机名的设置方法:

hostnamectl --pretty set-hostname NAME

hostnamectl --static set-hostname NAME

hostnamectl --transient set-hostname NAME

 


hostnamectl修改的主机名,在系统重启之前会一直有效,而hostname只对当次有效。如果不指定参数,则一次设置三种主机名:

hostnamectl set-hostname NAME

1. 临时修改主机名

命令hostname不但可以查看主机名,还可以用它来修改主机名,格式为:hostname 新主机名。

在修改之前9.4.149.11对应的主机名为hadoop_10202,而9.4.149.6对应的主机名为hadoop_10203。两者的主机名均带有下划线,因此需要修改。为求简单,仅将原下划线去掉:

hostname hadoop10202

hostname hadoop10203


经过上述修改后,类似于修改环境变量,只临时有效,还需要修改相应的系统配置文件,以永久有效。

2. 永久修改主机名

不同的Linux发行版本,对应的系统配置文件可能不同,SuSE 10.1/etc/HOSTNAME:

# cat /etc/HOSTNAME

hadoop_10202


将文件中的“hadoop_10202”,改成“hadoop10202”。有些Linux发行版本对应的可能是/etc/hostname文件,有些如CentOSRedHat同时有/etc/hostname/etc/sysconfig/network两个文件,修改/etc/hostname即可。

需注意:/etc/sysconfig/network的格式和/etc/hostname/etc/HOSTNAME不同,为:

HOSTNAME=主机名


修改之后,需要重启网卡,以使修改生效,执行命令:/etc/rc.d/boot.localnet start(不同系统命令会有差异,这是SuSE上的方法,其它一些可能为:/etc/init.d/network restart或service network restart等),再次使用hostname查看,会发现主机名变了。

上述方法如果不能永久有效,则可使用hostnamectl修改来修改永久有效。如果还是不行,则可重启系统以使永久有效。


可以通过以下多种方法查看主机名:

1) hostname命令(也可以用来修改主机名,但当次仅当次会话有效)

2) hostnamectl命令(也可以用来修改主机名,系统重启前一直有效)

3) cat /proc/sys/kernel/hostname

4) cat /etc/hostnamecat /etc/sysconfig/network(永久性的修改,需要重启)

5) sysctl kernel.hostname(也可以用来修改主机名,但仅重启之前有效)


批量修改/etc/hostname工具(其它可参照):

https://github.com/eyjian/libmooon/blob/master/shell/set_hostname.sh

3. 区别

方法

效果

hostname

当次登录临时有效,新登录或重新登录后无效

hostnamectl

系统重启之前一直有效,重启后无效

/etc/hostname

只有在系统重启后才有效


阅读(16) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册