今天发现服务器数据同步出现问题,发现时间差了2秒,最后定位是时间服务没有搭建,我们采用NTP时间同步服务器做为其他应用系统的授时服务器。
一、安装NTP服务
[root@ntp ~]# rpm -qa|grep ntp
[root@ntp ~]# yum install ntp
二、配置NTP服务器配置文件
(1)编辑配置文件/etc/ntp.conf文件
#restrict default nomodify notrap nopeer noquery
#restrict -4 default kod notrap nomodify nopeer noquery limited 拒绝 IPv4 的用戶
#restrict -6 default kod notrap nomodify nopeer noquery limited 拒绝 IPv6 的用戶
ignore: #关闭所有的NTP联机服务(基本不用);
nomodify: #客户端不能更改服务端的时间参数,但是客户端可以通过服务端进行网络校时;
notrap: #拒绝特殊的ntpdq捕获消息
notrust: #客户端除非通过认证,否则该客户端来源将被视为不信任子网
noquery: #不提供客户端的时间查询
#本例中允许接收同步请求的地址范围是192.168.30.0/24
例如 : restrict192.168.30.0 mask 255.255.255.0 nomodify notrap
restrict 192.168.100.0 mask 255.255.255.0 nomodify #该网段可以进行校时
restrict 59.124.196.84 #允许该NTP服务器进入
#注意:如果参数没有设定,那就表示该IP(或子网)没有任何限制。
(2)配置上游NTP服务器
配置上游NTP服务器之前,先检查上游服务器是否能正常连通。若可以使用,修改NTP配置文件如下:
server 210.72.145.44 #China Time Center
server cn.pool.ntp.org #Pulbic Time Server
server 202.112.10.36
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
server time-nw.nist.gov prefer //prefer 该服务器优先
#如果第二步配置的server 210.72.145.44、cn.pool.ntp.org都无效时,
#则NTP服务器会根据这里的配置,把自己的时间做为NTP服务器的时间,即和自己同步。
#如果要使用本地时间,将server 网络服务注释,添加两行
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
#备注:fudge这行是时间服务器的层次。设为0则为顶级,如果要向别的NTP服务器更新时间,请不要把它设为0
(3)配置NTP服务启动
[root@ntp ~]systemctl start ntp
[root@ntp ~]systemctl status ntp
[root@ntp ~]systemctl enbale ntp
(4)NTP常用命令(ntpstat,ntpq -p,date +%s,hwclock,cat /etc/timezone)
[root@ntp ~] ntpstat
synchronised to NTP server (210.72.145.44) at stratum 2
#本NTP服务器层次为2,已向210.72.145.44 NTP同步过
time correct to within 93 ms #时间校正到相差93ms之内
polling server every 1024 s #每1024秒会向上级NTP轮询更新一次时间
#:ntpdate -d
[root@ntp ~] # ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
210.72.145.44 .INIT. 16 u - 64 0 0.000 0.000 0.000
85.199.214.101 .INIT. 16 u - 64 0 0.000 0.000 0.000
202.112.10.36 .INIT. 16 u - 64 0 0.000 0.000 0.000
*LOCAL(0) .LOCL. 10 l 20 64 77 0.000 0.000 0.000
*
它告诉我们远端的服务器已经被确认为我们的主NTP Server,我们系统的时间将由这台机器所提供
+
它将作为辅助的NTP Server和带有*号的服务器一起为我们提供同步服务. 当*号服务器不可用时它就可以接管
-
远程服务器被clustering algorithm认为是不合格的NTP Server
x
远程服务器不可用
st:即stratum阶层,值越小表示ntp serve的精准度越高;
when:几秒前曾做过时间同步更新的操作;
Poll表示,每隔多少毫秒与ntp server同步一次;
reach:已经向上层NTP服务器要求更新的次数;
delay:网络传输过程钟延迟的时间;
offset:时间补偿的结果;
jitter:Linux系统时间与BIOS硬件时间的差异时间
#hwclock [-rw]
-r :亦即 read ,读出目前 BIOS 内的时间参数;
-w :亦即 write ,将目前的 Linux 系统时间写入 BIOS 当中啊!
(5)客户端配置
[root@linuxidc~]# ntpdate 192.168.100.100
#添加定时任务 : crontab -e
30 * * * * root /usr/sbin/ntpdate 192.168.100.100; /sbin/hwclock -w # 192.168.100.100是NTP服务器的IP地址
#crontab -l 查看定时任务
(6)同步硬件时钟
NTP一般只会同步system clock. 但是如果我们也要同步RTC(hwclock)的话那么只需要把下面的选项
# vi /etc/sysconfig/ntpd
SYNC_HWCLOCK=yes