版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cx55887/article/details/83901355
NTPS时间服务的应用场景
在我们搭建服务器集群的时候,各个主机时间不同步会导致各种未知bug,我了避免这种事情的发生,我们就要保证各个服务器的时间是一致的,而做一台时间服务器就能够轻松地保证集群中各个节点的时间时刻保持一致。
计算机时间
- 系统时间:是有Linux Kernel控制的时间 ,开机时会读取硬件时间,作为开机那一刻的软件时间运行,然后系统时钟就由软件模拟振荡电路来维持。
- 硬件时间:依靠主板上的振荡电路来模拟时钟维持时间。
需要注意的是软件时间和硬件时间并不一定总是一致的。虽然,重新启动系统,系统时间会读取硬件时间,实现同步,但是在不重新启动的时候,可以用命令实现软硬件时间同步。
相关命令
# 查看系统时间
[root@ZND ~]# date
Fri Nov 9 16:55:53 CST 2018
# 设置系统时间
[root@ZND ~]# date 110916552018.00 【月日小时分钟年.秒】
# 查看硬件时间
[root@ZND ~]# hwclock --show
# 设置硬件时间
[root@ZND ~]# hwclock --date 110317022018.00 【月日小时分钟年.秒】
# 将系统时间同步到硬件时钟:
[root@ZND ~]# hwclock --systohc 【 hc代表硬件时间,sys代表系统时间】
#将硬件时钟和系统时钟同步
[root@ZND ~]# hwclock --hctosys
NTP的配置文件
NTP的配置文件:/etc/ntp.conf
- restrict
作用:对ntp做权限控制
格式:restrict [ip] [mask] [par]
par:
ignore:忽略所有类型的NTP连接请求
nomodify:限制客户端不能使用命令ntpc和ntpq来修改服务器端的时间
noquery:不提供NTP网络校时服务
notrap:不接受远程登录请求
notrust:不接受没有经过认证的客户端的请求
【如果没有用任何参数,那么表示不做任何限制】
例子:restrict 10.220.5.0 mask 255.255.255.0 nomodify <<<允许10.220.5.0/24 网段主机进行时间同步
- server
作用:指定ntp服务器的地址
格式:server [ip or hostname] [perfer]
例子:server 127.127.1.0 <<<将当前主机作为时间服务器
- fudge
作用:设置时间服务器的层级
格式:fudge ip [startnum int]
例子:fudge 10.225.5.1 startnum 10
注意:fudge必须和server一块用, 而且是在server的下一行
startnum
0~15
0:表示顶级
10:通常用于给局域网主机提供时间服务
实现客户端的时间同步的两种方法
①基于ntpdate
方案:定时任务(crontab)+ntpdate
优点:实现简单
缺点:会导致客户端时间不连续,对于数据库业务影响是比较大,生产环境尽量不要用
②基于ntpd
方案:ntpdate+ntpd
优点:可以实现顺滑同步,避免时间不连续带来的问题
缺点:时间同步往往不能立刻完成
------做运维之前很矫情的小年轻-----