百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Centos8中如何使用Chrony同步时间

lipiwang 2024-10-28 17:29 8 浏览 0 评论

在Linux服务器中如果我们希望所有Linux服务器都具有正确的时间,则必须配置一些NTP客户端,该客户端将始终从远程NTP服务器获取正确的时间。

安装chrony

使用下面命令在Centos8中安装chrony:

[root@server1 ~]# yum -y install chrony

chrony安装完成之后,会有两个可执行程序:

  • chronyc: chrony命令行工具
  • chronyd: chrony的守护进程

Chrony的配置文件

Chrony的配置文件是/etc/chrony.conf,下面列出了示例chrony.conf文件:

[root@server1 ~]# cat /etc/chrony.conf 

pool 2.centos.pool.ntp.org iburst chrony将从中获取时间的远程NTP服务器。

driftfile /var/lib/chrony/drift 系统时钟频率都有小小的误差,这个就是为什么计算机运行一段时间后时间会不精确。NTP会自动来监测我们时钟的误差值并予以调整,所以它会把记录下来的误差先写入driftfile,重新启动系统后,之前的计算结果也就不会丢失了。

keyfile /etc/chrony.keys 该文件包含用于NTP身份验证的密钥。

logdir /var/log/chrony 它是记录Chrony的日志文件。

测试chrony

就像ntpdate命令一样,我们可以使用chronyd手动将Linux服务器的时间与远程NTP服务器进行同步。

语法:

chronyd -q ‘server {ntp_server_name} iburst’

下面使用实例:

http://www.cctime.com/html/2022-7-15/1624162.htm

https://www.admin5.com/article/20220715/1017575.shtml

https://www.csdn.net/article/2022-07-18/125854398

[root@server1 ~]# chronyd -q 'server s1a.time.edu.cn iburst'
2021-05-25T01:59:38Z chronyd version 3.5 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +SCFILTER +SIGND +ASYNCDNS +SECHASH +IPV6 +DEBUG)
2021-05-25T01:59:38Z Initial frequency -4.035 ppm
2021-05-25T01:59:42Z System clock wrong by -0.006248 seconds (step)
2021-05-25T01:59:42Z chronyd exiting


从上面的输出中可以看到,chrony已校正了系统时间。

Start和Enable chronyd服务

运行以下命令以启用chronyd服务:

[root@server1 ~]# systemctl enable chronyd
[root@server1 ~]# systemctl start chronyd

运行下面命令查看chronyd的服务状态:

[root@server1 ~]# systemctl status chronyd

验证chrony的同步

要验证系统时间是否已使用chrony同步,使用以下命令查看:

[root@server1 ~]# chronyc tracking 
Reference ID    : 4E2E66B4 (electrode.felixc.at)
Stratum         : 4
Ref time (UTC)  : Tue May 25 02:04:47 2021
System time     : 0.000002501 seconds slow of NTP time
Last offset     : +0.016273908 seconds
RMS offset      : 0.016273908 seconds
Frequency       : 98.064 ppm fast
Residual freq   : +1.774 ppm
Skew            : 155.311 ppm
Root delay      : 0.227135062 seconds
Root dispersion : 0.028634518 seconds
Update interval : 64.4 seconds
Leap status     : Normal

Reference ID 是系统时间当前同步到的服务器的ID和名称。

检查chrony来源

要列出有关chronyd使用的当前时间源的信息,请运行以下命令:

[root@server1 ~]# chronyc sources
210 Number of sources = 4
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^- electrode.felixc.at           3   6   377    29    -14ms[  -14ms] +/-  137ms
^- ntp7.flashdance.cx            2   6   377    91  +2336us[+2505us] +/-  174ms
^? ntp8.flashdance.cx            0   6     0     -     +0ns[   +0ns] +/-    0ns
^* 111.230.189.174               2   6   377    28   +423us[ +648us] +/-   50ms


要列出有关chronyd使用的每个源的漂移速度和偏移估计的信息,请运行以下命令:

[root@server1 ~]# chronyc sourcestats  -v
210 Number of sources = 4
                             .- Number of sample points in measurement set.
                            /    .- Number of residual runs with same sign.
                           |    /    .- Length of measurement set (time).
                           |   |    /      .- Est. clock freq error (ppm).
                           |   |   |      /           .- Est. error in freq.
                           |   |   |     |           /         .- Est. offset.
                           |   |   |     |          |          |   On the -.
                           |   |   |     |          |          |   samples. \
                           |   |   |     |          |          |             |
Name/IP Address            NP  NR  Span  Frequency  Freq Skew  Offset  Std Dev
==============================================================================
electrode.felixc.at        12   5   527     -2.019     22.417    -13ms  2921us
ntp7.flashdance.cx         10   5   397     +1.957     29.018  +2410us  2684us
ntp8.flashdance.cx          0   0     0     +0.000   2000.000     +0ns  4000ms
111.230.189.174            12   9   527     -0.001     10.537    -60ns  1360us

配置Chrony NTP服务

如果你要将Linux服务器配置为所有内部系统的Chrony NTP服务器。我们需要在/etc/chrony.conf配置文件中稍作修改:

[root@server1 ~]# sed -i "s/#local stratum 10/local stratum 10/g" /etc/chrony.conf
[root@server1 ~]# sed -i "s/#allow 192.168.0.0\/16/allow 192.168.0.0\/16/" /etc/chrony.conf


当我们取消注释
local stratum 10行时,则使我们的Linux服务器成为实时NTP服务器,即使它与网络断开连接也可以继续正常工作。而allow 192.168.0.0/26表示允许该网段的设备连接到我们的Chrony NTP服务器以进行时间同步。

更改后,重启chrony服务并跟踪chrony:

[root@server1 ~]# systemctl restart chronyd ; watch chronyc tracking


使用以下命令在防火墙中允许NTP服务:

[root@server1 ~]# firewall-cmd --permanent --add-service=ntp
success
[root@server1 ~]# firewall-cmd --reload
success

总结

这就是本文的全部内容,希望你能了解如何使用chrony服务将Linux的时间与NTP服务器同步。

相关推荐

超越JSON.parse:JavaScript中高效反序列化的艺术

当我们需要在网络间传输数据或将数据存储到本地存储时,我们通常会将JavaScript对象转换为字符串,然后在需要时再将其转换回对象,这就是数据序列化与反序列化。虽然JSON.parse()和JSON....

如何给别人网页上增加内容通过Chrome扩展为网页添加快速滚动功能

ContentScripts来看开发网站的介绍,ContentScripts是一类在网页上下文中运行的文件。它们可以使用标准的DOM接口,实现读取浏览器访问的网页的详细信息,比如网页的DOM结构...

JavaScript执行栈和执行上下文(js 执行上下文与执行栈)

在JavaScript中,执行栈和执行上下文是理解代码执行流程和作用域链的关键概念。它们决定了代码如何执行以及变量和函数如何被查找和访问。本文将详细介绍执行上下文的生命周期、执行栈的工作原理以及它们在...

防止浏览器缓存特定JS文件的常用方法

防止浏览器缓存特定JavaScript文件的常用方法:1.添加版本号或时间戳在引用JavaScript文件时,在URL中添加一个版本号或时间戳作为查询参数。这样每次更新文件后修改这个参数值,就能让浏...

前端面试:JavaScript 字符串的常用方法?

JavaScript字符串是一种不可变的数据类型,因此在使用字符串时需要注意以下几个方法:charAt(i):返回指定索引位置的字符。concat(str[,start[,end]]):连接...

Sequelize 在 Node.js 中的详细用法与使用笔记

1.Sequelize简介Sequelize是一个基于Promise的Node.jsORM(Object-RelationalMapping)工具,支持PostgreSQL、My...

前端js加密解密常用的六种方法(js加密解密源代码)

一、MD5加密可以使用md5插件进行加密插件地址:github.com/blueimp/JavaScript-MD5计算给定字符串值的(十六进制编码)MD5哈希值:计算给定字符串值和键的(十六进制编...

javascript深拷贝浅拷贝原理分析(js深拷贝和浅拷贝如何实现)

用js处理数据的时候经常遇到这样一个问题,需要保留原始数据不变情况下,进行一系列数据操作,这时候需要制作一份原始数据的副本数据来进行操作注意的是引用数据类型和基本数据类型在内存中存储方式是不一样的,只...

1、从零开始了解和使用WPS的js宏(JSA)

最近使用了一下wps的宏本地客户端功能进行了数据查询,与vba相比感觉还是比较好用的。(所谓本地客户端就是指单机使用运行的wps程序)VBA因为长时间的发展,胜在功能比较强大,支持一些Active...

JavaScript字符串查找方法总结(js查找子串)

在JavaScript中,查找字符串的常用方法有以下几种,根据不同的需求选择合适的方式:1.indexOf()/lastIndexOf()作用:查找子字符串首次出现的位置(indexOf)或...

JavaScript 合并数组的三种方法(js数组合并的几种方法)

数组作为一种数据结构,表示索引项的有序集合。经常会使用到数组,尤其是将多个数组进行合并,比如将数组[1,2,3]和数组[4,5,6]合并,最终得到数组[1,2,3,4,5,6]。数组的合并分不...

JS短文,如何正确理解Splice() 函数与Slice() 函数

转载说明:原创不易,未经授权,谢绝任何形式的转载Splice()函数与Slice()函数都是JavaScript数组中常用的方法之一。虽然它们的名称很相似,但它们的作用却截然不同。在这篇文章...

JavaScript字符串concat()方法教程

一、简介JavaScript中的字符串是一种基本数据类型,它可以用单引号或双引号括起来。concat()方法用于将一个或多个字符串连接起来,并返回连接后的新字符串。concat()方法不会改变原始字符...

手把手教你常用的59个JS类方法(js几种类型)

前言前端开发有时会处理一部分后台返回的数据,或者根据数据判断做一些处理;这个时候就非常有必要将一些常用的工具类封装起来;本文根据常用的一些工具类封装了59个方法,当然还有很多用的较少前期没有录...

js数组常用方法总结(js数组的使用)

首先说明,本文没技术含量,都是js的知识,只是为以后查阅方便。另外我们开了一个免费的讲解web前端课程,有兴趣的朋友可以去看,详情地址:http://fe.qietu.com/forum.php1、创...

取消回复欢迎 发表评论: