JavaEE鸿蒙应用开发HTML&JS+前端Python+大数据开发人工智能开发AI+设计软件测试新媒体+短视频直播运营产品经理集成电路应用开发(含嵌入式)Linux云计算+运维开发C/C++拍摄剪辑+短视频制作PMP项目管理认证电商运营Go语言与区块链大数据PHP工程师Android+物联网iOS.NET

CentOS7的Chrony系统时钟同步

来源:黑马程序员

浏览26099人

2020.04.30

一、CentOS6中的时间同步

1、时间同步的两种方式

在早期Linux操作系统中,时间同步主要有两种方式:ntpdatentpd,那这两者有什么区别呢?

假设有一台Linux设备,系统时间18:00。但是真实的准确时间(来源于原子钟、天文台、卫星)为19:30。如果我们使用ntpdate进行时间同步"# ntpdate cn.ntp.org.cn",操作系统的时间立即更新为19:30,那这种情况有什么问题呢?

2ntpdatentpd时间同步案例

当我们的系统有一个计划任务,是在每天19:40运行,那么实际今天这个的任务已经运行过了(当前时间是18:00),现在被ntpdate修改为19:30,那么意味作10分钟后,又会执行一次计划任务,这是ntpdate时间同步的隐患。那有啥解决办法呢?

解决方案:

使用ntpd时间平滑同步,不会让一个时间点在一天内经历两次,这就是ntpd服务方式平滑同步时间,它每次同步时间的偏移量不会太陡,一次一点一点的同步,完全同步好需要较长时间。所以一般开启ntpd服务同步前先用ntpdate手动同步一次。

二、CentOS7中的时间同步

1、什么是chrony

Chrony是一个开源的自由软件,其是网络时间协议的 (NTP) 的另一种实现,它由两个程序组成,分别是chronydchronycchronyd是一个后台运行的守护进程,用于调整内核中运行的系统时钟和时钟服务器同步。它确定计算机增减时间的比率,并对此进行补偿。chronyc提供了一个用户界面,用于监控性能并进行多样化的配置。它可以在chronyd实例控制的计算机上工作,也可以在一台不同的远程计算机上工作。

2、安装chrony

# yum install chrony -y

3chrony主配置文件

# cat /etc/chrony.conf |grep -v ^# |grep -v ^$

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

driftfile /var/lib/chrony/drift

makestep 1.0 3

rtcsync

logdir /var/log/chrony

4、启动chrony

# systemctl start chrony

# systemctl enable chrony

5、设置时区Asia/ Shanghai

# timedatectl set-timezone Asia/Shanghai

6、显示当前正在访问的时间源

# chronyc sources -v

7、强制同步系统时间

# chronyc -a makestep