zoukankan      html  css  js  c++  java
  • Linux 时间同步 02 ntpd、ntpdate的区别

    Linux 时间同步 02 ntpd、ntpdate的区别

    ntpd不仅仅是时间同步服务器,它还可以做客户端与标准时间服务器进行同步时间,而且是平滑同步,

    并非ntpdate立即同步,在生产环境中慎用ntpdate,也正如此两者不可同时运行。

    时钟的跃变,对于某些程序会导致很严重的问题。

    许多应用程序依赖连续的时钟——毕竟,这是一项常见的假定,即,取得的时间是线性的,

    一些操作,例如数据库事务,通常会地依赖这样的事实:时间不会往回跳跃。

    不幸的是,ntpdate调整时间的方式就是我们所说的”跃变“:在获得一个时间之后,ntpdate使用settimeofday(2)设置系统时间,

    这有几个非常明显的问题:

    【一】这样做不安全。

    ntpdate的设置依赖于ntp服务器的安全性,攻击者可以利用一些软件设计上的缺陷,拿下ntp服务器并令与其同步的服务器执行某些消耗性的任务。

    由于ntpdate采用的方式是跳变,跟随它的服务器无法知道是否发生了异常(时间不一样的时候,唯一的办法是以服务器为准)。

    【二】这样做不精确。

    一旦ntp服务器宕机,跟随它的服务器也就会无法同步时间。

    与此不同,ntpd不仅能够校准计算机的时间,而且能够校准计算机的时钟。

    【三】这样做不够优雅。

    由于是跳变,而不是使时间变快或变慢,依赖时序的程序会出错

    (例如,如果ntpdate发现你的时间快了,则可能会经历两个相同的时刻,对某些应用而言,这是致命的)。

    因而,唯一一个可以令时间发生跳变的点,是计算机刚刚启动,但还没有启动很多服务的那个时候。

    其余的时候,理想的做法是使用ntpd来校准时钟,而不是调整计算机时钟上的时间。

    NTPD在和时间服务器的同步过程中,会把BIOS计时器的振荡频率偏差——或者说Local Clock的自然漂移(drift)——记录下来。

    这样即使网络有问题,本机仍然能维持一个相当精确的走时。

  • 相关阅读:
    MVC模式-----struts2框架(2)
    MVC模式-----struts2框架
    html的<h>标签
    jsp脚本元素
    LeetCode "Paint House"
    LeetCode "Longest Substring with At Most Two Distinct Characters"
    LeetCode "Graph Valid Tree"
    LeetCode "Shortest Word Distance"
    LeetCode "Verify Preorder Sequence in Binary Search Tree"
    LeetCode "Binary Tree Upside Down"
  • 原文地址:https://www.cnblogs.com/backups/p/linux_timesync02.html
Copyright © 2011-2022 走看看