ntpd和ntpdate的区别
10,384 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软件包
1 2 3 4 |
# rpm -qa | grep ntp ntpdate-4.2.6p5-1.el6.x86_64 fontpackages-filesystem-1.41-1.1.el6.noarch ntp-4.2.6p5-1.el6.x86_64 <---- |
2、配置文件/etc/ntp.conf
一般配置,只需添加ntpd服务器的IP地址即可,
1 2 3 4 5 6 7 |
# Use public servers from the pool.ntp.org project. # Please consider joining the pool (http://www.pool.ntp.org/join.html). server 10.0.97.234 prefer #server 0.rhel.pool.ntp.org iburst #server 1.rhel.pool.ntp.org iburst #server 2.rhel.pool.ntp.org iburst #server 3.rhel.pool.ntp.org iburst |
3、配置/etc/ntp/step-tickers
1 2 |
# List of servers used for initial synchronization. 10.0.97.234 |
启动ntpd服务时,先读取该文件,使用ntpdate命令初始化同步时间,使本机和远端时间的差异小于1000秒。如果没有配置该文件,本机时间与远程时间服务时间相差大于1000秒,ntpd就会停止服务。
4、启动ntpd服务
1 |
service ntpd start |
Centos 7 – 20190523增加
1 |
systemctl start ntpd.service |
5、并开启开机启动
1 |
# chkconfig ntpd on |
6、用ntpq命令查询ntpd详细信息
1 2 3 4 |
# ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== *10.0.97.234 10.0.64.231 4 u 53 64 37 1.041 6.784 1.534 |
7、用ntpstat查看状况 – 20190523增加
1 2 3 4 |
# ntpstat synchronised to NTP server (10.0.97.234) at stratum 4 time correct to within 8138 ms polling server every 64 s |
各项说明:
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
1 2 3 4 5 6 7 |
# ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== vds13.ekvia.com 31.28.161.68 2 u 1 64 1 204.279 -5.130 1.425 134-249-140-99. .PPS. 1 u 1 64 1 192.536 6.930 0.337 ifconfig.com.ua .GPS. 1 u 1 64 1 193.186 -6.102 3.796 <--对应server 2.centos.pool.ntp.org iburst eye.ip-connect. 134.249.140.99 2 u 1 64 1 191.880 3.005 5.524 |
t – 类型,本地ntpd服务与远程时间服务的通信方式,u:单播或者多播manycast , b: 广播, l: 本地。
when – 最后一次时间同步到现在的时间,没有单位表示秒,d表示天,h表示小时。
poll – 同步的频率,例子中为64秒同步一次时间。
reach – 和远程时间服务其的连接成功次数,没成功一次就增加,以8进程显示。
delay – 从本地到远程时间服务器通信往返时间,单位毫秒。
offset – 本机与远程时间服务器的时间偏移量,该值越接近0越好,单位毫秒。
jitter – 本机与远程时间服务器的时间平均偏差,该值越小越好,单位毫秒。
三、总结
ntpd的内容超过了我的预期,内容很庞大,真的很庞大。引用资料中看到的一句话,“ntpdate是一个命令,而ntpd则是一个体系”。花了约半天时间来看资料总结,而总结出的内容只是ntpd庞大体系中的冰山一角,ntpd内部的运行原理、drift file的使用机制等等,这些我还没有深入触及。
上午11:07
不错!