Linux时间同步 Chrony

Chrony属于开源的自由软件,是NTPNetwork Time Protocol,网络时间协议)的另一种实现,与ntp不同,它可以更快且更准确地同步系统时钟,最大程度的减少时间和频率误差。在CentOS 7或基于RHEL 7操作系统上,已经是默认服务。它能让本地时间与服务器时间始终保持同步。与 ntpd 或者 ntpdate 最大的区别就是,Chrony 的修正是连续的,通过减慢时钟或者加快时钟的方式连续的修正。而 ntpd 或者 ntpdate 搭配 Crontab 的校时工具是直接调整时间,会出现间断,并且相同时间可能会出现两次。

使用chronyd服务平滑同步时间的方式要优于crontab + ntpdate,更快的同步只需要数分钟而非数小时时间,从而最大程度的减少时间和频率误差。使用ntpdate同步时间会造成时间的跳跃,对一些依赖时间的程序和服务会造成影响,例如:sleep、timer等,且chronyd服务可以在修正时间的过程中同时修正CPU tick。

系统最小化安装时也已经安装了 Chrony 服务

如果在chrony配置文件中指定了ntp服务器的地址,那么chrony就是一台客户端,会去同步ntp服务器的时间,如果在chrony配置了允许某些客户端来向自己同步时间,则chrony也充当了一台服务器,所以,安装了chrony即可充当客户端也可以充当服务端。


配置文件:/etc/chrony.conf

  • server:指明时间服务器地址;
  • allow all:允许所有客户端主机;
  • allow 192.168.1.0/24 : 只允许192.168.1.0网段的客户端进行时间同步;
  • deny all:拒绝所有客户端;
  • bindcmdaddress:命令管理接口监听的地址;
  • local stratum 10:即使自己未能通过网络时间服务器同步到时间,也允许将本地时间作为标准时间授时给其它客户端;
  • rtcsync: 启用RTC(实时时钟)的内核同步;
  • stratumweight 0:让chronyd在选择源时忽略源的层级;
  • makestep 10 3 :如果系统时钟的偏移量大于10秒,则允许在前三次更新中步进调整系统时钟;
  • 建议设置成 makestep 10 -1  随时进行步进时钟;

  • logdir /var/log/chrony : 指定存放日志文件的目录;
  • keyfile /etc/chrony.keys : 指定包含NTP验证密公共NTP服务

    公共NTP服务
    pool.ntp.org:   NTP服务的虚拟集群
    cn.pool.ntp.org
    0-3.cn.pool.ntp.org
    阿里云NTP服务器
    Unix/linux类:ntp.aliyun.com    ntp1-7.aliyun.com
    windows类:time.pool.aliyun.com

  • 启动 chrony 服务

  • chrony 服务的交互式工具 chronyc

  • chrony自带一个交互式工具chronyc,在配置文件中指定了时间服务器之后,如果想查看同步状态,可以进入这个交互式工具的交互界面。

常用指令说明:

  •  help:查看完整的命令帮助列表
  •  makestep:立即同步时间
  •  tracking:显示系统时间信息
  •  activity:检查多少NTP源在线/离线
  •  add server:手动添加一台新的NTP服务器
  •  delete:手动移除NTP服务器或对等服务器
  •  accheck:检查NTP访问是否对特定主机可用
  •  clients:在客户端报告已访问到的服务器
  •  sources -v : 查看时间同步源

  • ^* / * 是时间同步成功,+ 是时间备用同步服务器,? 是时间同步失败
  • 查看时间源状态 sourcestate -v

  • 可以使用下面的命令对服务器的世界进行强制同步一次

  • chronyc -a makestep

  • 使用 timedatectl 开启 ntp 自动同步

  • 设置开机启动

  • 在客户端安装 chrony 服务并配置服务器地址为 192.168.10.2

  • 编辑配置文件

  • 启动服务并设置开机启动

  • 查看时间源状态

  • 更改系统时间测试


  • cat /etc/adjtime    |  date -R  #查看系统默认时间显示的是哪个区域的【UTC】(+0800)表示我国东八区GMT + 8 = UTC + 8 = CST
     
    timedatectl set-time "2020-01-13 08:30:50"        #更改时间

    timedatectl set-timezone Asia/Shanghai            #更改时区

    timedatectl list-timezones                                 #查看支持的所有时区

    timedatectl set-local -rtc 0|1                             #设定/etc/adjtime中的时间显示格式    【是否使用UTC时间,0为使用,1为不使用】
     

  • ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime       #创建软连接到本地时区 

  • 编辑 /etc/profile   在末尾添加   export TZ='CST-8'

  • ls  -l /etc/localtime 
    lrwxrwxrwx. 1 root root 35 Aug 25 21:06 /etc/localtime -> ../usr/share/zoneinfo/Asia/Shanghai

  • centos 8 使用 ntp

  • rpm -ivh http://mirrors.wlnmp.com/centos/wlnmp-release-centos.noarch.rpm

  • dnf -y install wntp

  • ntpdate ntp1.aliyun.com


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值