chrony 时间同步

Posted 遠離塵世の方舟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了chrony 时间同步相关的知识,希望对你有一定的参考价值。

RHEL7.4 192.168.100.1 作为时间服务器,其它主机到这台来同步时间。

时间服务器安装及配置:
#yum install chrony --RHEL7默认已安装chrony,而没有安装ntpd.

#systemctl status chronyd --查看chronyd服务状态
#systemctl enable chronyd --开机启动

#vi /etc/chrony.conf    --修改配置文件

#server 0.rhel.pool.ntp.org iburst   --注释这4行,由于是内网环境,所以无法跟外部时间服务器进行时间同步。
#server 1.rhel.pool.ntp.org iburst
#server 2.rhel.pool.ntp.org iburst
#server 3.rhel.pool.ntp.org iburst
  server 192.168.100.1 iburst    --添加这一行,表示与本机同步时间
 
local stratum 10    --该行取消注释

# Allow NTP client access from local network.
allow 192.168.100.0/24   --允许哪些服务器到这台服务器来同步时间

#systemctl restart chronyd --修改完配置文件后,重启chronyd服务

[[email protected] ~]# netstat -antulp | grep chronyd
udp        0      0 0.0.0.0:123             0.0.0.0:*                           705/chronyd        
udp        0      0 127.0.0.1:323           0.0.0.0:*                           705/chronyd        
udp6       0      0 ::1:323                 :::*                                705/chronyd     


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

timedatectl
# timedatectl status
# 两条命令效果等同

[[email protected] ~]# timedatectl
       Local time: Sat 2017-10-07 10:55:22 CST
   Universal time: Sat 2017-10-07 02:55:22 UTC
         RTC time: Sat 2017-10-07 02:55:22
        Time zone: Asia/Shanghai (CST, +0800)
      NTP enabled: no
NTP synchronized: yes
  RTC in local TZ: no
       DST active: n/a

注意NTP synchronized值,只有时间服务器自己同步完成时间之后,才能为其它服务器提供时间同步服务。
2.设置日期与时间

timedatectl set-time "YYYY-MM-DD HH:MM:SS"
timedatectl set-time "YYYY-MM-DD"
timedatectl set-time "HH:MM:SS"
3.查看所有可用的时区

timedatectl list-timezones
# 亚洲
timedatectl list-timezones |  grep  -E "Asia/S.*"
4.设置时区

timedatectl set-timezone Asia/Shanghai
5.设置硬件时间

# 硬件时间默认为UTC
timedatectl set-local-rtc 1
# hwclock --systohc --localtime
# 两条命令效果等同

6.启用NTP时间同步
timedatectl set-ntp yes
# yes或no; 1或0也可以

问题:不明白这里启用ntp时间同步有啥意义。难道是说可以在时间服务器上都安装chronyd和ntpd服务来同时提供时间服务吗????如果设置为yes,手动设置时间则报错。看本文结尾。

7、查看时间源信息

[[email protected] ~]# chronyc sources
210 Number of sources = 1
MS Name/IP address         Stratum Poll Reach LastRx Last sample              
===============================================================================
^* rhel1.rusky.com              10   7   377   22m  -3603ns[  -19us] +/-   32us
[[email protected] ~]# chronyc sources -v
210 Number of sources = 1

  .-- 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              
===============================================================================
^* rhel1.rusky.com              10   7   377   22m  -3603ns[  -19us] +/-   32us
[[email protected] ~]#

客户端时间同步配置:

1.yum install chrony –y 

2.修改配置文件

[[email protected] ~]# vi /etc/chrony.conf
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#server 0.rhel.pool.ntp.org iburst  --注释这4行
#server 1.rhel.pool.ntp.org iburst
#server 2.rhel.pool.ntp.org iburst
#server 3.rhel.pool.ntp.org iburst
server 192.168.100.1 iburst    ---添加该行,表示到这台服务器去同步时间。

3.重启chronyd并设置开机启动

[[email protected] ~]# systemctl restart chronyd.service
[[email protected] ~]# systemctl enable chronyd.service

4. 查看时间同步状态

[[email protected] ~]# timedatectl
       Local time: Sat 2017-10-07 11:15:43 CST
   Universal time: Sat 2017-10-07 03:15:43 UTC
         RTC time: Sat 2017-10-07 03:02:26
        Time zone: Asia/Shanghai (CST, +0800)
      NTP enabled: no
NTP synchronized: yes   --为yes表示已同步
  RTC in local TZ: no
       DST active: n/a

重启chronyd服务后,需要过几分钟才会自动完成同步。

如果需要手动,可使用下面的命令:

#ntpdate 192.168.100.1

============================

问题:????

[[email protected] ~]# date
Sun Oct  8 11:00:51 CST 2017
[[email protected] ~]# timedatectl
       Local time: Sat 2017-10-07 11:31:45 CST
   Universal time: Sat 2017-10-07 03:31:45 UTC
         RTC time: Sun 2017-10-08 03:01:57
        Time zone: Asia/Shanghai (CST, +0800)
      NTP enabled: no
NTP synchronized: no
  RTC in local TZ: no
       DST active: n/a

如果把NTP enabled 修改为yes时,则手动修改时间失败。

如果为No时,则可以手动修改时间,这是什么原因呢???

[[email protected] ~]# timedatectl set-ntp yes
[[email protected] ~]# timedatectl set-time "2017-10-08 11:00:50"
Failed to set time: Automatic time synchronization is enabled
[[email protected] ~]# timedatectl set-ntp no
[[email protected] ~]# timedatectl set-time "2017-10-08 11:00:50"
[[email protected] ~]# date
Sun Oct  8 11:00:51 CST 2017

以上是关于chrony 时间同步的主要内容,如果未能解决你的问题,请参考以下文章

linux时间同步chrony介绍

Linux系统下的Chrony时间同步

第十章   时间同步chrony

chrony 时间同步

Linux Chrony 设置服务器集群同步时间

Linux时间同步服务chrony