如何在RHEL/CentOS 8/7上更改服务器主机名/时区和日期

时间:2020-02-23 14:31:26  来源:igfitidea点击:

本教程将引导我们完成在RHEL/CentOS 8/7系统上设置或者更改服务器主机名/时区和日期的步骤。具有正确的时间和服务器主机名是Linux服务器操作的重要方面。在编写日志和报告事件时间时,大多数应用程序将参考系统本地时间。

服务器主机名通常用于生成SSL证书,本地dns解析和配置应用程序。请注意,在RHEL 8上设置持久性服务器主机名和时区与在RHEL 6上进行设置不同,但与RHEL 7相同。RHEL8/7使用systemd初始化系统,而RHEL 6使用Upstart。

如何在RHEL 8上设置服务器主机名

RHEL 8随附hostnamectl工具,用于管理服务器主机名。要查看所有当前主机名,请使用以下命令:

$hostnamectl status
    Static hostname: rhel8.local
          Icon name: computer-vm
            Chassis: vm
         Machine ID: 992462394b1c4f2e80e7e2fd978f04f8
            Boot ID: e10a0c6a44ff4a15b7731df1bd45d6cf
     Virtualization: kvm
   Operating System: Red Hat Enterprise Linux 8.0 Beta (Ootpa)
        CPE OS Name: cpe:/o:redhat:enterprise_linux:8.0:beta
             Kernel: Linux 4.18.0-32.el8.x86_64
       Architecture: x86-64

在RHEL 8上设置主机名

要在系统上设置所有主机名,请使用以下命令:

sudo hostnamectl set-hostname <hostname>

请参见下面的示例:

sudo hostnamectl set-hostname rhel8.example.com

这将更改"静态",并且更改瞬态主机名。当使用hostnamectl命令设置主机名时,空格被-代替,特殊字符被删除。

确认变更

$hostnamectl 
    Static hostname: rhel8.example.com
          Icon name: computer-vm
            Chassis: vm
         Machine ID: 992462394b1c4f2e80e7e2fd978f04f8
            Boot ID: e10a0c6a44ff4a15b7731df1bd45d6cf
     Virtualization: kvm
   Operating System: Red Hat Enterprise Linux 8.0 Beta (Ootpa)
        CPE OS Name: cpe:/o:redhat:enterprise_linux:8.0:beta
             Kernel: Linux 4.18.0-32.el8.x86_64
       Architecture: x86-64

设置Pretty主机名

我们还可以使用引号设置" Pretty"主机名。

$sudo hostnamectl set-hostname "Josphat's notebook" --pretty
$hostnamectl 
    Static hostname: rhel8.example.com
    Pretty hostname: Josphat's notebook
          Icon name: computer-vm
            Chassis: vm
         Machine ID: 992462394b1c4f2e80e7e2fd978f04f8
            Boot ID: e10a0c6a44ff4a15b7731df1bd45d6cf
     Virtualization: kvm
   Operating System: Red Hat Enterprise Linux 8.0 Beta (Ootpa)
        CPE OS Name: cpe:/o:redhat:enterprise_linux:8.0:beta
             Kernel: Linux 4.18.0-32.el8.x86_64
       Architecture: x86-64

清除系统主机名

清除特定的系统主机名,并使用以下命令恢复为默认主机名:

sudo hostnamectl set-hostname ""

如何在RHEL 8上配置时区

Systemd附带了timedatectl命令,用于控制系统时间和日期。

显示当前日期和时间

要显示系统时钟和RTC的当前设置,请运行:

$timedatectl status
                Local time: Tue 2019-02-12 18:24:05 EAT
            Universal time: Tue 2019-02-12 15:24:05 UTC
                  RTC time: Tue 2019-02-12 15:22:22
                 Time zone: Africa/Nairobi (EAT, +0300)
 System clock synchronized: yes
               NTP service: active
           RTC in local TZ: no

更改当前时间系统时间和硬件时钟

要在RHEL 8上设置当前时间,请使用以下命令语法:

timedatectl set-time HH:MM:SS

以下示例将当前时间设置为下午6:28.

sudo timedatectl set-time 18:28:00

将HH替换为小时,将MM替换为分钟,将SS替换为秒,均以两位数形式输入。如果我们有活动的NTP服务,则此操作将失败,并显示错误未能设置时间:NTP单元处于活动状态。

默认情况下,系统配置为使用UTC。我们可以通过运行以下命令来强制其使用本地时间:

sudo timedatectl set-local-rtc true

更改当前日期

可以通过运行命令语法来更改当前日期。

sudo timedatectl set-time "yyyy-MM-dd hh:mm:ss"

将YYYY替换为四位数的年份,将MM替换为两位数的月份,将DD替换为该月份的两位数的日期。如果我们未指定当前时间,则会将时间设置为00:00:00。因此,设置日期和时间。

例:

sudo timedatectl set-time "2019-04-29 11:08:00"

更改时区

我们可能需要首先列出所有可用时区。

timedatectl list-timezones

然后使用以下命令设置正确的时区。

sudo timedatectl set-timezone time_zone

用list命令列出的任何值替换" time_zone"时。

$timedatectl list-timezones | grep Nairobi
Africa/Nairobi
$sudo timedatectl set-timezone Africa/Nairobi

这会将时区设置为"非洲/内罗毕"

将系统时钟与远程服务器同步(推荐)

与手动调整相反,我们可以使用NTP协议启用系统时钟与一组远程服务器的自动同步。

我们有一篇有关如何在RHEL 8上使用Chrony配置NTP服务器的文章

要使用以下命令启用NTP服务:

sudo timedatectl set-ntp yes