首页 > 编程知识 正文

时钟同步和时间同步区别,ntp服务多久会对时一次

时间:2023-05-03 18:37:01 阅读:134003 作者:3014

要同步时间,请使用ntpdate命令或使用ntpd服务。 (在debian上,ntp服务器是ntp服务,必须安装apt-get install ntp。 此外,由于手动同步时间必须使用ntpdate,因此还必须安装apt-get install ntpdate。

一.构成ntp

1 .在所有服务器上安装ntp

yum install ntp

注:在此选择Inforpush1作为NTP服务器,其他服务器同步Inforpush1

2 .配置NTP服务器的/etc/ntp.conf

修改restrict参数以配置需要同步的服务的网段。

3 .配置其他服务器的/etc/ntp.conf

vi /etc/ntp.conf

修改server参数以配置NTP服务器的IP

4 .配置完成后重新启动ntp服务

系统重新开始ntpd

或者

服务ntpd restart

5 .显示时间同步

ntpqp

6、如果看到netstat-tlunp|grepntp#123端口,表示ntp服务已成功启动。

注意情况和参数的说明

1 .权限设定部#权限的设定主要通过restrict这个参数进行设定。 主要语法如下。

restrictipmasknetmask _ IP parameter其中IP可以是软件地址或default,default类似于0.0.0.0 #。 paramter的情况如下:

# ignore :关闭所有NTP在线服务

# no modify :表示客户端无法更改服务器端的时间参数,但、

#客户端还可以从服务器端去网络学校。

# notrust :除非此客户端经过身份验证,否则此客户端源将被视为不受信任的域

# no query :不提供客户端的时间查询

# notrap :未提供名为trap的远程事件登录

如果未设置任何参数,则其IP (或域)将“没有任何限制”

restrictdefaultnomodifynotrapnoquery #关闭所有NTP请求数据包

restrict 127.0.0.1 #允许此级别的查询

restrict 192.168.0.1 mask 255.255.255.0 no modify

192.168.0.1/24网段中的服务器可以通过此NTP服务器进行时间同步

2 .设置上层主机#设置上层主机主要通过名为server的参数进行。 语法如下。

#server [IP|HOST Name] [prefer]

#Server后面是我们的上层Time Server呢! 如果服务器参数为

#如果在后面加上perfer,那意味着我们的NTP主机主要以该主机为中心

#时间修正的应对。 另外,为了解决更新时间分组传送延迟动作,

#所以可以用driftfile来规定我们的主机

与Time Server交流所花费的时间可以记录在driftfile中

#在以下示例中,NTP服务器和

#cn.pool.ntp.org联机所需的时间记录在/etc/ntp/drift文件中

server 0.pool.ntp.org

server 1.pool.ntp.org

server 2.pool.ntp.org

server cn.pool.ntp.org prefer

#其他设定值可以是系统默认值

server 127.127.1.0 #本地时钟

fudge 127.127.1.0 stratum 10

driftfile /var/lib/ntp/drift

broadcastdelay 0.008

keys /etc/ntp/keys

总而言之,restrict用于设置访问权限,server用于设置更高级别的时间服务器,driftfile用于设置保存漂移时间的文件。

具体结构的说明; 参考: http://www.cn blogs.com/liushui-sky/p/9203657.html

二、使用ntpdate比较简单。 格式如下

[ root @ Linux~~ ] # ntpdate [-NV ] [ NTP IP/hostname ]

[ root @ Linux~] # ntpdate 192.168.0.2

[ root @ Linux~] # ntpdate time.NTP.org

但是,这样的同步只是强制将系统时间设置为ntp服务器时间。 如果cpu tick有问题,只是治标不治本。

所以,一般配合cron命令,来进行定期同步设置。比如,在crontab中添加: root路径下 ()

在/etc/crontab 文件下 添加
0 12 * * * * /usr/sbin/ntpdate 192.168.0.1

这样,会在每天的12点整,同步一次时间。ntp服务器为192.168.0.1。

三、两点之间的不同
使用ntpd服务,要好于ntpdate加cron的组合。因为,ntpdate同步时间,会造成时间的跳跃,对一些依赖时间的程序和服务会造成影响。比如sleep,timer等。而且,ntpd服务可以在修正时间的同时,修正cpu tick。理想的做法为,在开机的时候,使用ntpdate强制同步时间,在其他时候使用ntpd服务来同步时间。

要注意的是,ntpd有一个自我保护设置: 如果本机与上源时间相差太大, ntpd不运行. 所以新设置的时间服务器一定要先ntpdate从上源取得时间初值, 然后启动ntpd服务。ntpd服务运行后, 先是每64秒与上源服务器同步一次, 根据每次同步时测得的误差值经复杂计算逐步调整自己的时间, 随着误差减小, 逐步增加同步的间隔. 每次跳动, 都会重复这个调整的过程.

使用之前得弄清楚一个问题,ntpd与ntpdate在更新时间时有什么区别。ntpd不仅仅是时间同步服务器,它还可以做客户端与标准时间服务器进行同步时间,而且是平滑同步,并非ntpdate立即同步,在生产环境中慎用ntpdate,也正如此两者不可同时运行。

时钟的跃变,对于某些程序会导致很严重的问题。许多应用程序依赖连续的时钟——毕竟,这是一项常见的假定,即,取得的时间是线性的,一些操作,例如数据库事务,通常会地依赖这样的事实:时间不会往回跳跃。不幸的是,ntpdate调整时间的方式就是我们所说的”跃变“:在获得一个时间之后,ntpdate使用settimeofday(2)设置系统时间,这有几个非常明显的问题:

第一,这样做不安全。ntpdate的设置依赖于ntp服务器的安全性,攻击者可以利用一些软件设计上的缺陷,拿下ntp服务器并令与其同步的服务器执行某些消耗性的任务。由于ntpdate采用的方式是跳变,跟随它的服务器无法知道是否发生了异常(时间不一样的时候,唯一的办法是以服务器为准)。

第二,这样做不精确。一旦ntp服务器宕机,跟随它的服务器也就会无法同步时间。与此不同,ntpd不仅能够校准计算机的时间,而且能够校准计算机的时钟。

第三,这样做不够优雅。由于是跳变,而不是使时间变快或变慢,依赖时序的程序会出错(例如,如果ntpdate发现你的时间快了,则可能会经历两个相同的时刻,对某些应用而言,这是致命的)。因而,唯一一个可以令时间发生跳变的点,是计算机刚刚启动,但还没有启动很多服务的那个时候。其余的时候,理想的做法是使用ntpd来校准时钟,而不是调整计算机时钟上的时间。

NTPD 在和时间服务器的同步过程中,会把 BIOS 计时器的振荡频率偏差——或者说 Local Clock 的自然漂移(drift)——记录下来。这样即使网络有问题,本机仍然能维持一个相当精确的走时。

请参考:https://blog.csdn.net/tuolaji8/article/details/79971591

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。