RHCSARHCE 红帽Linux认证学习指南(第7版)EX200 & EX300
上QQ阅读APP看书,第一时间看更新

认证目标5.05 时间同步

网络时间协议(Network Time Protocol, NTP)客户端的配置相当简单。因此,本节只是概括性地介绍NTP客户端的配置文件以及相应的命令工具。

让各个不同的系统按同一个时间运行有着充分的理由。例如,如果Web服务器和客户端按照不同的时间进行日志记录,就会让故障排除变得极其困难。一些服务依赖于精确的时间戳,例如,时间漂移超过5分钟将导致Kerberos客户端无法通过验证。

RHEL 7包含两个NTP守护进程的RPM:ntpd和chronyd。不要二者都安装。通常,建议为始终连接到网络的系统安装ntpd,如服务器,而chronyd则是虚拟系统和移动系统的首选。我们将介绍默认的时间同步服务chronyd的配置。但是,我们首先将介绍如何配置时区。

5.5.1 时区的配置

每个系统,不管是物理的还是虚拟的都有一个硬件时钟。此时钟的时间取决于电池的续航能力。当电池逐渐耗尽时,这些硬件时钟最终都无法计时。在RHEL 7系统的安装过程中,通常把硬件时钟设置为本地时间而非UTC时间。但是,UTC(通常就是格林威治标准时间GMT)通常是服务器上的最佳设置,它能在改变到夏令时避免出错。

每个RHEL 7系统都有一个时区,它在/etc/localtime文件中配置。这是一个符号链接,指向/usr/share/zoneinfo下的一个时区文件。例如,如果读者在加利福尼亚州,那么/etc/localtime应该指向/usr/share/zoneinfo/America/Los_Angeles。

不必手动设置时区文件的符号链接,而是可以使用timedatectl实用工具。如果单独执行此命令,不使用任何参数,则它会显示当前时间设置的一个摘要,包括当前时间、时区和NTP状态。图5-14给出了一个样本输出。

图5-14 日期和时间设置

执行下面的命令可显示可用时区的列表:

        # timedatectl list-timezones

要切换到不同的时区,可执行timedatectl set-timezone命令,如下所示:

        # timedatectl set-timezone America/Los_Angeles

5.5.2 使用chronyd同步时间

默认的chronyd配置文件/etc/chrony.conf被设置为从NTP pool项目连接到多个公共服务器。结合使用时,chronyd守护进程可使时间错误减到最少。

        server 0.rhel.pool.ntp.org iburst
        server 1.rhel.pool.ntp.org iburst
        server 2.rhel.pool.ntp.org iburst
        server 3.rhel.pool.ntp.org iburst

重构发行版(如CentOS)的用户会看到不同的主机名,如0.centos.pool.ntp.org。此处显示的iburst配置选项可让chronyd服务启动时的初始同步变快。

要将chronyd配置为与另一个NTP服务器同步,只需要修改/etc/chrony.conf中的server指令,然后重启chronyd:

        # systemctl restart chrnoyd

使用chronyc sources -v命令可显示当前时间来源信息。图5-15给出了一个例子。

图5-15 NTP服务器的统计数据

5.5.3 使用ntpd同步时间

ntpd守护进程的基本配置很直观。首先,应该确保停止chronyd和在引导时禁用chronyd,因为chronyd和ntpd不能同时运行在同一个机器上:

        # systemctl stop chronyd.service
        # systemctl disable chronyd.service

然后安装ntp RPM包:

        # yum install ntp

默认的ntpd配置文件是/etc/ntp.conf。它类似于/etc/chronyd.conf文件,包含4个服务器指令,指向NTP pool项目中的公共服务器。可以定制配置,或者使用默认设置运行ntpd。完成对此文件的修改后,启动并启用ntpd:

        # systemctl start ntpd.service
        # systemctl enable ntpd.service

要现实关于NTP源的信息,可执行ntpd -p命令。