简介:

时间服务NTP:Network Time Protocol
作用:用来给其他主机提供时间同步服务,在搭建服务器集群的时候,需要保证各个节点的时间是一致的,时间服务器不失为一个好的选择。

NOTE:解释:Linux的NTP服务,NTP为NTPD和NTPdate,ntpd是服务器所属,ntpdate为客户端所属,为两个软件。【个人理解,不喜勿喷,还望共同讨论、多多指导。】
更新:2020年12月27日19点46分,ntpd也可以作为客户端校准时间所用。
解释更新:2020年12月27日19点47分:在工作中我们一般都是使用ntpdate+ntp来完成时间同步,因为单独使用ntpdate同步时间虽然简单快捷但是会导致时间不连续,而时间不连续在数据库业务中影响是很大的,单独使用ntp做时间同步时,当服务器与时间服务器相差大的时候则无法启动ntpd来同步时间。由于ntpd做时间同步时是做的顺滑同步(可以简单理解为时间走得快,以便将落后的时间赶过来),所以同步到时间服务器的的时间不是瞬间完成的,开启ntpd之后稍等三五分钟就能完成时间同步。

上干货。

客户机的对时(下文统称校时):

测试

ntpdate ntp.api.bz

提示:

[root@test4 ~]# ntpdate ntp.api.bz
bash: /usr/sbin/ntpdate: 没有那个文件或目录
  • 首先我们知道了没有该应用[ntpdate]
  • 其次我们知道了ntpdate的目录位置。
  • 没有该应用,安装!

NOTE:第一种方式:较为简易

我们客户机只需要安装ntpdate即可:

yum install -y ntpdate

安装完成之后输入命令

date //查看当前时间

如下

[root@test4 ~]# date
2017年 07月 07日 星期五 09:35:41 CST
//CST为时区,本文章不做讲解,自行百度。

输入校准时间命令:

ntpdate ntp.api.bz

//后面ntp.api.bz是网络的NTP时间服务器,还有很多服务器,自行百度。
NOTE:再次输入date命令查看当前时间,发现已经校准时间了。

具体代码如下

[root@test4 ~]# date
2017年 07月 07日 星期五 09:09:13 CST
[root@test4 ~]# ntpdate ntp.api.bz
bash: /usr/sbin/ntpdate: 没有那个文件或目录
[root@test4 ~]# yum install -y ntpdate
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.huaweicloud.com
* extras: mirrors.neusoft.edu.cn
* updates: mirrors.ustc.edu.cn
正在解决依赖关系
--> 正在检查事务
---> 软件包 ntpdate.x86_64.0.4.2.6p5-29.el7.centos.2 将被 安装
--> 解决依赖关系完成

依赖关系解决

============================================================================================================================================================================================
Package 架构 版本 源 大小
============================================================================================================================================================================================
正在安装:
ntpdate x86_64 4.2.6p5-29.el7.centos.2 base 87 k

事务概要
============================================================================================================================================================================================
安装 1 软件包

总下载量:87 k
安装大小:121 k
Downloading packages:
ntpdate-4.2.6p5-29.el7.centos.2.x86_64.rpm | 87 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装 : ntpdate-4.2.6p5-29.el7.centos.2.x86_64 1/1
验证中 : ntpdate-4.2.6p5-29.el7.centos.2.x86_64 1/1

已安装:
ntpdate.x86_64 0:4.2.6p5-29.el7.centos.2

完毕!
[root@test4 ~]# ntpdate ntp.api.bz
26 Dec 19:35:07 ntpdate[3365]: step time server 114.118.7.161 offset 109592733.813803 sec
[root@test4 ~]# date
2020年 12月 26日 星期六 19:35:18 CST
[root@test4 ~]#

NOTE:第二种方式:【类似于服务器配置】

安装ntp

yum install -y ntp

编辑/etc/ntp.conf

vim /etc/ntp.conf

注释掉server所有行,添加上层IP或网址:server 192.168.1.14其余无需设置。【记得关闭防火请或在防火墙上放行此客户机同外部时间服务器同步】

保存退出后重启ntpd服务

systemctl restart ntpd
//或
service ntpd restart

查看校准状态

ntpstat
#synchronised:表示时间同步完成(ntp可以正常工作了)
#unsynchronised:表示时间同步尚未完成
//或
ntpq -p
//出现如下:
[root@ntp ~]# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*114.118.7.161   123.139.33.3     2 u   31   64  377   20.952   -1.577   2.663

NOTE:

补充:用ntpq -p查看状态时的各种参数解释

参数 释义
remote 上游的时间服务器的ip或者主机名,如果是*表示本机就是做为上游服务器工作
refid “.LOCL.”表示基于当前主机提供时间同步服务,如果是IP地址表示基于一个上游服务器提供时间同步服务。
st 表示remote远程服务器的层级编号
t 本地NTP服务器与远程NTP服务器的通信方式,常见方式有:u(单播)、b(广播)、1(本地)、m(组播)
when 表示几秒之前做过一次时间同步
poll 表示每隔多少秒做一次时间同步
reach 表示向上游服务器成功请求时间同步的次数
delay 从本地机发送同步要求到ntp服务器的时间延迟
offset 主机通过NTP时钟同步与所同步时间源的时间偏移量,单位为毫秒(ms)。offset越接近于0,主机和ntp服务器的时间越接近
jitter 这是一个用来做统计的值. 它统计了在特定个连续的连接数里offset的分布情况. 简单地说这个数值的绝对值越小,主机的时间就越精确