ntpd和ntpdate的区别

9,702 total views, 1 views today

一、ntpd与ntpdate的区别

ntpd
  • ntp是一个时间服务。
  • 采用柔性时间调整策略,让时间的变化和调整尽量减少对业务的影响。
  • 不盲目相信远端时钟,服务器时间和远端时钟超过恐慌阈值(默认1000秒),ntp甚至会停止时间同步。
  • ntpd自己会思考。它相信本地时间可能不对,但是不会忽快忽慢甚至停滞。ntpd通过多次收发包选择权威稳定的时间源,算出双方间的网络延迟,然后才会采信新的远端时钟进行时间同步。
  • NTPD 在和时间服务器的同步过程中,会把BIOS振荡时钟和远程时间服务的偏移量记录下来,这样即使网络有问题,本机仍然能维持一个相当精确的走时。
ntpdate
  • ntpdate是一个时间同步命令,通常采用crond+ntpdate方式同步时间。
  • ntpdate盲目信任远端时钟,如果远端时钟错误,ntpdate永远相信远端时钟是正确的,可能造成服务器时钟停滞,甚至回逆。
  • ntpdate简单粗暴,无脑不会思考。采用野蛮式(brute force,国外资料中这个词用的很好)、跃进式调整服务器时间。

二、ntpd配置

1、确认安装ntp软件包

2、配置文件/etc/ntp.conf
一般配置,只需添加ntpd服务器的IP地址即可,

3、配置/etc/ntp/step-tickers

启动ntpd服务时,先读取该文件,使用ntpdate命令初始化同步时间,使本机和远端时间的差异小于1000秒。如果没有配置该文件,本机时间与远程时间服务时间相差大于1000秒,ntpd就会停止服务。
4、启动ntpd服务
Centos 7 – 20190523增加

5、并开启开机启动

6、用ntpq命令查询ntpd详细信息

7、用ntpstat查看状况 – 20190523增加

各项说明

remote –  远程时间服务器的IP地址或者显示LOCAL(没有远程服务器时显示)。“+”表示优先,“*”表示次优先。
refid – 远程时间服务器的上一层服务器IP地址。
st – stratum阶层,表示与顶层参考时钟(原子时钟、GPS或者其他无线电时钟)的距离,顶层为第0层。距离顶层越近,时间越准确。本例中的远程时间服务器处于4层;阿里云时钟服务为第2层;2.centos.pool.ntp.org则是第1层,它的上一层是GPS时钟。  https://en.wikipedia.org/wiki/Network_Time_Protocol#Clock_strata

st – stratum阶层

t – 类型,本地ntpd服务与远程时间服务的通信方式,u:单播或者多播manycast , b: 广播, l: 本地。
when – 最后一次时间同步到现在的时间,没有单位表示秒,d表示天,h表示小时。
poll – 同步的频率,例子中为64秒同步一次时间。
reach – 和远程时间服务其的连接成功次数,没成功一次就增加,以8进程显示。
delay – 从本地到远程时间服务器通信往返时间,单位毫秒。
offset – 本机与远程时间服务器的时间偏移量,该值越接近0越好,单位毫秒。
jitter – 本机与远程时间服务器的时间平均偏差,该值越小越好,单位毫秒。

三、总结

ntpd的内容超过了我的预期,内容很庞大,真的很庞大。引用资料中看到的一句话,“ntpdate是一个命令,而ntpd则是一个体系”。花了约半天时间来看资料总结,而总结出的内容只是ntpd庞大体系中的冰山一角,ntpd内部的运行原理、drift file的使用机制等等,这些我还没有深入触及。

One comment

发表评论

必填项已用*标注