CentOS7时间和日期的同步

 CentOS 6版本,使用 hwclock

CentOS 7版本,使用timedatectl


1.基本概念

1.1 GMT,UTC,CST,DST时间

  • 世界标准时间

整个地球分为二十四时区,每个时区都有自己的本地时间。在国际无线电通信场合,为了统一起见,使用一个统一的时间,称为通用协调时(UTC,Universal Time Coordinated)。

  • 格林威治标准时间

格林威治标准时间(Greenwich Mean Time)指位于英国伦敦郊区的皇家格林尼治天文台的标准时间,因为本初子午线被定义在通过那里的经线。(UTC与GMT时间基本相同,本文中不做区分)

  • CST

中国标准时间(中国标准时间)

  • DST

夏令时(夏令时)指在夏天太阳升起的比较早时,将时间拨快一小时,以提早日光的使用。

1.2 硬件时间和系统时间

  • 硬件时间

RTC(实时时钟)或CMOS时间,一般在主板上靠电池供电,服务器断电后也会继续运行。仅保存日期时间数值,无法保存时区和夏令时设置。

  • 系统时间

一般在服务器启动时复制RTC时间,之后独立运行,保存了时间,时区和夏令时设置。


2. timedatectl命令

2.1 使用帮助

2.2命令示例

1、显示系统的当前时间和日期

2.设置日期与时间

3.查看所有可用的时区

 

 4、设置时区

5.设置硬件时间

硬件时间默认为UTC

 

6.启用时间同步 

yes或no; 1或0也可以

 


3. Chrony服务

Chrony是网络时间协议的(NTP)的另一种实现,由两个程序组成,分别是chronyd和chronyc。

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

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

优势:

  • 更快的同步只需要数分钟而非数小时时间,从而最大程度减少了时间和频率误差,这对于并非全天24小时运行的台式计算机或系统而言非常有用。
  • 能够更好地响应时钟频率的快速变化,这对于具备不稳定时钟的虚拟机或导致时钟频率发生变化的节能技术而言非常有用。
  • 在初始同步后,它不会停止时钟,以防对需要系统时间保持单调的应用程序造成影响。
  • 在应对临时非对称延迟时(例如,在大规模下载造成链接饱和时)提供了更好的稳定性。
  • 无需对服务器进行定期轮询,因此具备间歇性网络连接的系统仍然可以快速同步时钟。

在CentOS7下为标配的时间同步服务,当然也可以使用以前的NTP同步方式,不过要安装NTP服务。

3.1安装使用

yum install chrony              安装chrony
systemctl start chronyd       启动chrony程序
systemctl enable chronyd    设置开机自启动

3.2配置文件

当Chrony启动时,它会读取/etc/chrony.conf配置文件中的设置。也就是锁,如果需要更改时间同步的服务器,修改此配置文件即可。


stratumweight 0     

# stratumweight指令设置当chronyd从可用源中选择同步源时,每个层应该添加多少距离到同步距离。默认情况下,设置为0,让chronyd在选择源时忽略源的层级。

driftfile /var/lib/chrony/drift    

# chronyd程序的主要行为之一,就是根据实际时间计算出计算机增减时间的比率,将它记录到一个文件中是最合理的,它会在重启后为系统时钟作出补偿,甚至可能的话,会从时钟服务器获得较好的估值。


rtcsync   

# rtcsync指令将启用一个内核模式,在该模式中,系统时间每11分钟会拷贝到实时时钟(RTC)。

makestep 10 3       

# 通常,chronyd将根据需求通过减慢或加速时钟,使得系统逐步纠正所有时间偏差。在某些特定情况下,系统时钟可能会漂移过快,导致该调整过程消耗很长的时间来纠正系统时钟。
# 该指令强制chronyd在调整期大于某个阀值时步进调整系统时钟,但只有在因为chronyd启动时间超过指定限制(可使用负值来禁用限制),没有更多时钟更新时才生效。

#allow 192.168/16    

# 这里你可以指定一台主机、子网,或者网络以允许或拒绝NTP连接到扮演时钟服务器的机器。


bindcmdaddress 127.0.0.1
bindcmdaddress ::1
keyfile /etc/chrony.keys

# 该指令允许你限制chronyd监听哪个网络接口的命令包(由chronyc执行)。该指令通过cmddeny机制提供了一个除上述限制以外可用的额外的访问控制等级。


commandkey 1

# 指定了/etc/chrony.keys中哪一条密码被使用


generatecommandkey
noclientlog
logchange 0.5
logdir /var/log/chrony

# 此参数指定了产生一个SHA1或MD5加密的密码,存放在/etc/chrony.keys中


4、chrony实例

 
4.1、在控制节点服务器安装并启用chrony
#yum install chrony                  安装chrony
#systemctl start chronyd          启动chrony程序
#systemctl enable chronyd      设置开机自启动
#systemctl status chronyd       查看启动状态
 
4.2、修改服务器主配置文件
 
4.3、重启服务
#systemctl restart chronyd.service 
 
4.4、在客户端节点配置chrony。并修改配置文件
#yum install chrony
#vi /etc/chrony.conf
4.5、重启客户端chrony
#systemctl restart chronyd.service 
 

5、常用命令

   查看时间同步源:

$ chronyc sources -v

查看时间同步源状态:

$ chronyc sourcestats -v

设置硬件时间

硬件时间默认为UTC:

$ timedatectl set-local-rtc 1

启用NTP时间同步:

$ timedatectl set-ntp yes

校准时间服务器:

$ chronyc tracking

查看时间同步的信息来源
# chronyc sources

# chronyc sources -v
 

参考:

1、官方文档:https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/environment-ntp.html

2、https://www.cnblogs.com/zhi-leaf/p/6282301.html

3、來源:简书         链接:https://www.jianshu.com/p/fb32239ccf2b

4、https://www.cnblogs.com/cloudos/p/NTP.html




猜你喜欢

转载自www.cnblogs.com/hanshanxiaoheshang/p/9436482.html