chrony时间同步服务器

chrony是一个开源自由的网络时间协议 NTP 的客户端和服务器软软件。它能让计算机保持系统时钟与时钟服务器(NTP)同步,因此让你的计算机保持精确的时间,Chrony也可以作为服务端软件为其他计算机提供时间同步服务。

chrony由两个程序组成,分别是chronyd和chronyc

​ a. chronyd是一个后台运行的守护进程,用于调整内核中运行的系统时钟和时钟服务器同步。它确定计算机增减时间的比率,并对此进行补偿。

​ b. chronyc提供了一个用户界面,用于监控性能并进行多样化的配置。它可以在chronyd实例控制的计算机上工作,也可以在一台不同的远程计算机上工作。

NTP 是网络时间协议(Network Time Protocol)的简称,通过 udp 123 端口进行网络时钟同步。
RHEL7中默认使用chrony作为时间服务器,也支持NTP,需要额外安装。
NTP与chrony不能同时存在,只能用其中一个

192.168.100.106主机上:
1、安装、更新chrony服务
[root@local ~]# yum -y install chrony

2、修改配置文件:
[root@local ~]# /etc/chrony.conf
注释掉默认的同步服务器
3 #server 0.centos.pool.ntp.org iburst	
4 #server 1.centos.pool.ntp.org iburst
5 #server 2.centos.pool.ntp.org iburst
6 #server 3.centos.pool.ntp.org iburst

#允许来同步的主机网段
27 allow 192.168.100.0/24

#当前网络时钟源不可用时,使用本地时间
30 local stratum 10

3、启动chrony服务
[root@local ~]# systemctl restart chronyd

[root@local ~]# date -s "1999/08/01 17:20:00"
1999年 08月 01日 星期日 17:20:00 CST
[root@local ~]# date
1999年 08月 01日 星期日 17:20:10 CST

客户机chrony配置:

1、安装、更新chrony服务
[root@local ~]# yum -y install chrony

2、修改配置文件:
[root@local ~]# /etc/chrony.conf
注释掉默认的同步服务器
3 #server 0.centos.pool.ntp.org iburst	
4 #server 1.centos.pool.ntp.org iburst
5 #server 2.centos.pool.ntp.org iburst
6 #server 3.centos.pool.ntp.org iburst
#添加上自己的时间服务器
7 server 192.168.100.106 iburst	

3、启动chrony服务
[root@local ~]# service chronyd restart
Redirecting to /bin/systemctl restart chronyd.service

4、使用chronyc sources查看时间同步状态
[root@local ~]# chronyc sources
210 Number of sources = 1
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^? 192.168.100.106              10   6     3     2   +8326d[ +8326d] +/-  135us

5、同步时间
[root@local ~]# ntpdate 192.168.100.106
 1 Aug 17:20:26 ntpdate[16230]: step time server 192.168.100.106 offset -2129.382432 sec
[root@local ~]# date
1999年 08月 01日 星期日 17:20:29 CST

添加到计划任务中,实现开机自启:

[root@local ~]# vim /etc/crontab 
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed
#增加这一行即可
* * * * * root /usr/sbin/ntpdate 192.168.100.106	

补充:

? 指示已失去连接性或其数据包未通过所有测试的源。它也显示在启动时,直到从中至少收集了3个样本为止。
+  表示可接受的信号源与选定的信号源组在一起
-  表示被合并算法排除的可接受源
x  表示chronyd认为是虚假行情的时钟(即,其时间与大多数其他来源不一致)。
〜 表示时间似乎具有太多可变性的来源。


查看 ntp_servers:chronyc sources 
查看 ntp_servers 状态:chronyc sourcestats 
查看 ntp_servers 是否在线:chronyc activity 
查看 ntp 详细信息:chronyc tracking


时间相关的命令:timedatectl
查看日期时间、时区及NTP状态:timedatectl
查看时区列表:timedatectl list-timezones
修改时区:timedatectl set-timezone +所要修改的时区
修改日期时间:timedatectl set-time “所要修改的日期”
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐