使用hostnamectl命令修改CentOS7的主机名

在 CentOS7 中有三种定义的主机名:

  • 静态的(static):静态主机名也称为内核主机名,是系统在启动时从 /etc/hostname 设置内核的主机名,你可以理解为是永久性的主机名。仅可包含 -a-z0-9 字符,且最大不超过 64 个字符长度。 例如 hbwh3x-01。此种主机名就是通常所说的 “主机名”,存储在 /etc/hostname 文件中。
  • 瞬态的(transient):瞬态主机名是在系统运行时临时分配的主机名,一般是从网络配置中获得,在重启后将失效。同样仅可包含 -a-z0-9 字符,且最大不超过 64 个字符长度。如果存在 static 主机名且不等于 localhost, 那么将忽略 transient 主机名。
  • 灵活的(pretty):灵活的易读的主机名,仅供人类阅读,可以包含各种特殊字符,且无长度限制。 例如 Tom's Laptop (必须是UTF-8编码)。 pretty(易读主机名)、chassis(设备类型)、icon(图标名称)存储在 /etc/machine-info 文件中。

修改 CentOS7 主机名有个专用的命令 hostnamectl

1
2
3
4
5
6
7
8
9
10
11
12
[root@m5 ~]# hostnamectl 
Static hostname: m5
Icon name: computer-vm
Chassis: vm
Machine ID: 4b1eee7ac9ce4da8acbfd6ddcf02ada2
Boot ID: 13368e022e2c4059b86ab2cda0ab1208
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-957.el7.x86_64
Architecture: x86-64
[root@m5 ~]#

不加任何参数其实等同于 hostnamectl status,用于查看当前的主机名状态。

1
2
3
4
5
6
7
8
9
10
11
[root@m5 ~]# hostnamectl status
Static hostname: m5
Icon name: computer-vm
Chassis: vm
Machine ID: 4b1eee7ac9ce4da8acbfd6ddcf02ada2
Boot ID: 13368e022e2c4059b86ab2cda0ab1208
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-957.el7.x86_64
Architecture: x86-64

选项

  • --no-ask-password
    • 在执行特权操作时不向用户索要密码。
  • --transient, --static, --pretty
    • 与默认的 status 命令一起使用, 表示仅显示特定的主机名(不可同时使用多个选项)。
    • 与 set-hostname 命令一起使用, 表示仅更新特定的主机名(可以同时使用多个选项)。
  • -H --host=[USER@]HOST
    • 操作指定的远程主机。可以仅指定一个主机名(hostname), 也可以使用 “username@hostname” 格式。 hostname 后面还可以加上容器名(以冒号分隔), 也就是形如 “hostname:container” 的格式, 以表示直接连接到指定主机的指定容器内。 操作将通过SSH协议进行,以确保安全。 可以通过 machinectl -H HOST 命令列出远程主机上的所有容器名称。
  • -M, --machine=
    • 在本地容器内执行操作。 必须明确指定容器的名称。
  • -h, --help
    • 显示简短的帮助信息并退出。
  • --version
    • 显示简短的版本信息并退出。

命令

status

  • 显示当前的主机名及其他相关信息。 这是默认命令。

set-hostname NAME

  • 将系统的主机名设为 NAME 。 如果使用了 --static, --transient, --pretty 选项, 那么只更新指定的主机名,否则同时更新 pretty, static, transient 三个主机名。 如果在设置 pretty 主机名的同时也设置 static/transient 主机名, 那么 static/transient 主机名将根据如下规则从 pretty 主机名派生而来:
    • 首先将大写字母转换为小写字母
    • 然后删除不在 -,a-z,0-9 范围内的字符。
  • 这样可以确保 static/transient 主机名始终保持与 pretty 主机名一致,同时又不违反自身的命名规则。 如果仅设置 static/transient 主机名,则不会对 pretty 主机名产生任何影响。

  • 注意,若设为空字符串, 则表示将主机名重置为默认值(通常是 localhost)。

set-icon-name NAME

  • 将系统的图标名设为 NAME , 某些图形界面的应用程序会根据此设置给主机配上适当的图标。 此名称必须遵守图标命名规范。

  • 注意,若设为空字符串, 则表示将图标名重置为默认值(通常由”设备类型”决定)。

set-chassis TYPE

  • 将系统的设备类型设为 TYPE, 某些图形界面的应用程序 会根据此设置切换到合适的人机界面之类。 取值范围如下:

    • desktop:台式机
    • laptop:笔记本
    • convertible:折叠本
    • server:服务器
    • tablet:平板电脑
    • handset:智能手机
    • watch:智能手表
    • embedded:嵌入式设备
    • vm:虚拟机
    • container:容器
  • 注意,若设为空字符串, 则表示将设备类型重置为默认值(通常由主板固件决定)。

set-deployment ENVIRONMENT

  • 将系统的部署环境设为 ENVIRONMENT 。 必须设为一个单独的单词且禁止包含任何特殊字符。 建议设为下列单词中的一个:

    • development:开发
    • integration:综合
    • staging:阶段
    • production:生产
  • 注意,若设为空字符串,则表示将部署环境重置为默认值(同样是空字符串)。

set-location LOCATION

  • 将系统的地理位置设为 LOCATION 。 必须设为一个人类易读字符串, 准确的描述出主机所在的物理位置。 例如: “XX数据中心3楼E23机柜U7”

  • 注意,若设为空字符串,则表示将地理位置重置为默认值(同样是空字符串)。

退出状态

返回值为 0 表示成功, 非零返回值表示失败代码。

参考链接:http://www.jinbuguo.com/systemd/hostnamectl.html

有钱任性,请我吃包辣条
0%