赞
踩
本文基于Linux上CentOS 7版本配合chrony(需要使用yum自行下载)进行演示
目录
计算机主板BIOS上依靠主板电池供电维持运行的时间,设备关机后依然在持续计时,计算机系统开机启动时会自动读取这个时间。
软件系统上的时间,软件启动后会去读取硬件时间,之后会独立于硬件时间运行。
(1)安装chrony
[root@sulibao ~]# yum install -y chrony
(2)开启chronyd服务
[root@sulibao ~]# systemctl start chronyd
(3)设置开机自启动
[root@sulibao ~]# systemctl enable chronyd
chrony服务的配置主要是修改配置文件/etc/chrony.conf,在配置文件中修改要求参数
(1)添加时间服务器(参照源头)
- [root@sulibao ~]# vim /etc/chrony.conf
-
- server 0.centos.pool.ntp.org iburst
- server 1.centos.pool.ntp.org iburst
- server 2.centos.pool.ntp.org iburst
- server 3.centos.pool.ntp.org iburst
- pool ntp1.aliyun.com iburst
- pool ntp2.aliyun.com iburst
- pool ntp3.aliyun.com iburst
- pool ntp4.aliyun.com iburst
- pool ntp5.aliyun.com iburst
- pool ntp6.aliyun.com iburst
-
- //推荐使用阿里的时间端
- //也可以书写ip地址,以此来同步目标的系统时间
(2) allow选项
/etc/chrony.conf中文本“Allow NTP client access from local network.”处可以指定ntp可以从客户端从本地网络访问。格式为allow ip/掩码
(3)从配置文件中保存退出后,重启chronyd服务
[root@sulibao ~]# systemctl restart chronyd
(4)通过命令进行查看是否同步,出现^*即表示有可同步的源,符号具体含义参照后文
- [root@sulibao ~]# chronyc sources
- 210 Number of sources = 7
- MS Name/IP address Stratum Poll Reach LastRx Last sample
- ===============================================================================
- ^? 192.168.2.100 0 9 0 - +0ns[ +0ns] +/- 0ns
- ^- electrode.felixc.at 3 8 161 147 -15ms[ -15ms] +/- 189ms
- ^? tock.ntp.infomaniak.ch 1 8 1 145 +4056us[+4056us] +/- 137ms
- ^- cp01.webhd.nl 3 8 367 142 -15ms[ -15ms] +/- 188ms
- ^- mail2.light-speed.de 2 8 24 857 +18ms[ +17ms] +/- 141ms
- ^* 120.25.115.20 2 8 337 152 +398us[+6175ns] +/- 23ms
- ^+ 203.107.6.88 2 8 277 214 -3025us[-3402us] +/- 33ms
(5)通过date或者命令timedatectl查询,“NTP synchronized: yes”即表示同步成功。符号具体含义参照后文。
- [root@sulibao ~]# timedatectl
- Local time: Tue 2023-01-03 20:14:14 CST
- Universal time: Tue 2023-01-03 12:14:14 UTC
- RTC time: Tue 2023-01-03 12:14:13
- Time zone: Asia/Shanghai (CST, +0800)
- NTP enabled: yes
- NTP synchronized: yes
- RTC in local TZ: no
- DST active: n/a
- [root@sulibao ~]# date
- Tue Jan 3 20:14:25 CST 2023
搭建两台虚拟机,一台作为服务器端,一台作为客户端
先保证能够正确同步时间,后将自己搭建为服务器,并允许第二台虚拟机ip所在网段可以通过此服务器进行时间同步
vim /etc/chrony.conf
像上文一样将虚拟机1的ip地址作为pool写入配置文件,重启服务即可。
配置主从时间同步,服务器端需要关闭防火墙(可参照专栏相关文章)
上述步骤完成后通过命令行查看同步状态以及解析输出信息含义
格式:chronyc+参数
参数 | 参数含义 |
sources (-v) | 查看时间同步生效情况,-v可以生成详细符号解释便于判断 |
sourcestats (-v) | 查看服务状态, -v可以生成详细符号解释便于判断 |
activity | 查看服务器是否在线 |
tracking | 查看服务详细信息 |
-a makestep | 强制同步系统时间 |
- [root@sulibao ~]# chronyc sources -v
- 210 Number of sources = 7
-
- .-- Source mode '^' = server, '=' = peer, '#' = local clock.
- / .- Source state '*' = current synced, '+' = combined , '-' = not combined,
- | / '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
- || .- xxxx [ yyyy ] +/- zzzz
- || Reachability register (octal) -. | xxxx = adjusted offset,
- || Log2(Polling interval) --. | | yyyy = measured offset,
- || \ | | zzzz = estimated error.
- || | | \
- MS Name/IP address Stratum Poll Reach LastRx Last sample
- ===============================================================================
- ^- electrode.felixc.at 3 7 336 250 -10ms[ -11ms] +/- 186ms
- ^? ntp1.ams1.nl.leaseweb.net 2 7 300 707 +41ms[ +41ms] +/- 256ms
- ^- cp01.webhd.nl 3 6 357 59 -6547us[-6547us] +/- 211ms
- ^? mail2.light-speed.de 2 8 1 59 +16ms[ +16ms] +/- 142ms
- ^* 120.25.115.20 2 6 365 127 -61us[ -510us] +/- 24ms
- ^+ 203.107.6.88 2 6 377 62 -6263us[-6263us] +/- 37ms
(1)M: 表示信号源的模式。^表示服务器,=表示对等方,#表示本地连接的参考时钟。
(2)S:指源的状态:
*表示chronyd当前已经同步到的源。
+表示可接受的信号源,与选定的信号源组合在一起。
-表示被合并算法排除的可接受源
?指已失去连接性或者其数据包未通过所有测试的源。
x表示chronyd认为时虚假行情的时钟,即标记该时间与其他多数时间不一致
~表示时间似乎具有太多可变性
(3)Name/IP address:显示源的名称或IP地址,或参考时钟的参考ID。
(4)Stratum:显示时间来源的层,如其最近收到的样本中所报告。层1表示一台具有本地连接的参考时钟的计算机,与第1层计算机同步的计算机位于第2层,与第2层计算机同步的计算机位于第3层,依此类推。
(5)Poll:显示轮询源的速率,以秒为单位的时间间隔的以2为底的对数。因此,值为6表示每64秒进行一次测量。chronyd会根据当前情况自动更改轮询速率。
(6)Reach:显示源的可达性寄存器以八进制数字打印。寄存器有8位,并在每个从源接收或丢失的数据包上更新。值377表示从最后八次传输中收到了对所有用户的有效答复。
(7)LastRx:显示多长时间前从来源接收到了最后一个好的样本(在下一列中显示)。未通过某些测试的测量将被忽略。通常以秒为单位。字母m,h,d或y表示分钟,小时,天或年。
(8)Last sample:此列显示上次测量时本地时钟与源之间的偏移。方括号中的数字表示实际测得的偏移量。可以用ns(表示纳秒),us (表示微秒),ms(表示毫秒)或s(表示秒)作为后缀。方括号左侧的数字表示原始测量值,已调整为允许此后施加于本地时钟的任何摆度。+/-指示器后面的数字表示测量中的误差范围。正偏移表示本地时钟位于源时钟之前。
- [root@sulibao ~]# chronyc sourcestats -v
- 210 Number of sources = 7
- .- 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 14 9 22m -3.776 18.370 -26ms 7668us
- ntp1.ams1.nl.leaseweb.net 3 3 195 +4.246 79142.719 +41ms 18ms
- cp01.webhd.nl 22 15 27m +0.083 9.086 -19ms 4582us
- mail2.light-speed.de 3 3 23m +0.625 589.018 +17ms 420us
- 120.25.115.20 20 11 27m +0.060 2.597 +1271us 1400us
- 203.107.6.88 20 11 26m -0.280 4.072 -1989us 1941us
(1)NP:测量集中的采样点数。
(2)NR: 具有相同符号的残差运行数。
(3)Span:测量集的长度(时间)。
(4)Frequency:估计时钟频率误差 (ppm)。
(5)Freq Skew:频率错误估计。
(6)Offset:估计偏移量。
(7)Std Dev:标准偏差。
- [root@sulibao ~]# timedatectl status
- Local time: Tue 2023-01-03 20:14:14 CST
- Universal time: Tue 2023-01-03 12:14:14 UTC
- RTC time: Tue 2023-01-03 12:14:13
- Time zone: Asia/Shanghai (CST, +0800)
- NTP enabled: yes
- NTP synchronized: yes
- RTC in local TZ: no
- DST active: n/a
(1)CST:中国、澳大利亚等的标准时间。
(2)UTC:协调世界时间。将地球分为二十四时区,每个时区都有自己的本地时间。在国际无线电通信场合,为了统一起见,使用一个统一的时间。
(3)GMT:格林威治标准时间。指位于英国伦敦格林尼治天文台的标准时间,因为本初子午线被定义在通过那里的经线。
(4)DST:夏令时,指在夏天太阳升起的比较早时,将时间拨快一小时,以提早日光的使用。
(5)RTC:实时时钟,可以提供时钟日历的功能。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。