如何在Linux服务器中使用Chrony工具与NTP同步时间
在基于Linux的操作系统服务器中,时区和时间戳在优化和服务器管理中起着至关重要的作用。如果你是一个服务器管理员,你可能已经知道,改变服务器时间戳对你的服务器从不同的位置访问起到至关重要的作用。如果你的Linux服务器的时间没有正确同步,你的系统可能无法获得相应的包更新。为了避免这个麻烦,你可以使用Linux服务器上的NTP(网络时间协议)来同步你服务器的时间。
在Linux中与NTP同步时间
每个操作系统都有它的方法来根据时区保持服务器时间的准确和完美。在Linux中,保持服务器时间准确的工作是由Chrony完成的。Chrony是Debian、Red Hat、Arch和其他Linux发行版的网络时间协议,可以通过网络协议同步时间。
Chrony有它的守护进程,可以在你的Linux服务器上静静的运行。红帽软件开发者建立了Chrony;现在,它被广泛用于所有基于Linux的操作系统。它是用C编程语言编写的,并且拥有GNU隐私许可。这篇文章将告诉你如何在Linux中使用Chrony(NTP)工具与NTP同步时间。
第一步:在Linux上安装Chrony
首先我们就是在Linux上安装Chrony。它很容易在Debian、Red Hat、服务器和其他Linux发行版上安装,可以从官方的Linux资源库中找到。如果你是Debian/Ubuntu Linux用户,你可以运行下面的aptitude命令在你的系统上安装Chrony。
sudo apt-get install chrony
如果你是Red Hat或Fedora Linux用户,你可以在终端shell上运行以下DNF或YUM命令来安装Chrony。
在 Red Hat Linux 上安装 Chrony
sudo yum install chrony
在Fedora Linux上安装Chrony
sudo dnf install chrony
在Linux服务器上成功安装Chrony后,现在可以启用它并查看服务器上Chrony的状态。在Linux终端shell上按时间顺序运行以下系统控制命令来启用并查看系统状态。
# systemctl enable --now chronyd
# systemctl status chronyd
你也可以运行以下命令来检查Linux服务器上的Chrony活动。
# chronyc activity
第2步:在Linux上监控Chrony参数
在Linux上安装Chrony工具后,你可以通过终端shell监控源模式、源状态、IP地址、NTP采样率。用root权限在终端shell上运行以下命令来检查Chrony参数。
chronyc sources -v
你也可以在终端shell上运行下面的sourcestats命令来监控Linux服务器上的样本点数量、频率、网络IP、NTP服务器地址以及其他有关NTP服务器的详细信息。
chronyc sourcestats -v
第三步:配置Chrony来同步时间。
Chrony在系统内部运行一个守护进程,通过NTP服务器自动同步Linux系统的时间。你可以在/etc/chrony/chrony.conf文件中找到Chrony配置脚本。要编辑和配置Chrony配置,你可以在终端shell上运行以下命令。这里,我使用Nano脚本编辑器来编辑Chrony配置脚本;你也可以使用其他编辑器。
sudo nano /etc/chrony/chrony.conf
通常情况下,NTP使用池0.pool.ntp.org burst服务器来与Linux中的NTP进行时间同步,但你可以在配置脚本中添加以下NTP服务器地址来与Linux中的NTP进行时间同步。但你可以在配置脚本中添加以下NTP服务器地址,在Linux中与NTP同步时间。
server 0.europe.pool.ntp.org iburst
server 1.europe.pool.ntp.org iburst
server 2.europe.pool.ntp.org ibusrt
server 3.europe.pool.ntp.org ibusrt

在Linux系统上配置完NTP服务器地址后,不要忘记重新启动机器上的Chrony服务。运行以下系统控制命令来重启Linux机器上的Chrony守护进程。
sudo systemctl restart chrony
第四步:通过Chrony追踪时间
前面我们已经看到了如何监控Chrony参数和如何配置Chrony设置。现在我们可以看到Chrony源来监控Chrony守护进程的参数。用root权限在终端shell上运行以下命令来监控Chrony源。
# chronyc sources
你也可以通过在shell上运行以下命令来监控Chrony跟踪记录。
# chronyc tracking
最后,在你的终端shell上运行下面的timedatectl命令来显示你的Linux机器上当前的本地时间、通用时间、RTC时间、时区和NTP服务器的状态。
# timedatectl
总结,在Linux中使用网络协议同步时间并不是很复杂。在整篇文章中,我已经介绍了为什么在Linux服务器上同步时间的重要性,以及如何在Linux中使用NTP同步时间。在做完所有的事情后,如果你发现你的机器在每次重启后时间还是不同步,请确保BIOS设置以及主板电池是否正常。