如何在RHEL/CentOS 8/7上更改服务器主机名/时区和日期
本教程将引导我们完成在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