秘籍第二式 时间同步配置

Posted 哭泣的馒头

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了秘籍第二式 时间同步配置相关的知识,希望对你有一定的参考价值。

一、概述

为了避免主机时间因为长期运作下所导致的时间偏差,进行时间同步(synchronize)的工作是非常必要的。Linux系统下,一般使用ntp服务器来同步不同机器的时间。一台机器,可以同时是ntp服务器和ntp客户机。在网络中,推荐使用像DNS服务器一样分层的时间服务器来同步时间。
同步时间,可以使用ntpdate命令,也可以使用ntpd服务。

二、有网配置时间同步

yum install ntpdate -y 
ntpdate cn.pool.ntp.org
ntpdate ntp1.aliyun.com
#把时间同步做成计划任务
crontab -e
* */1 * * * /usr/sbin/ntpdate cn.pool.ntp.org
#重启crond服务
service crond restart

使用ntpd服务,要好于ntpdate加cron的组合。因为,ntpdate同步时间,会造成时间的跳跃,对一些依赖时间的程序和服务会造成影响。比如sleep,timer等。而且,ntpd服务可以在修正时间的同时,修正cpu tick。理想的做法为,在开机的时候,使用ntpdate强制同步时间,在其他时候使用ntpd服务来同步时间。
要注意的是,ntpd 有一个自我保护设置: 如果本机与上源时间相差太大, ntpd 不运行. 所以新设置的时间服务器一定要先 ntpdate 从上源取得时间初值, 然后启动 ntpd服务。ntpd服务 运行后, 先是每64秒与上源服务器同步一次, 根据每次同步时测得的误差值经复杂计算逐步调整自己的时间, 随着误差减小, 逐步增加同步的间隔. 每次跳动, 都会重复这个调整的过程.

1、让NTP服务同步硬件时间
最后提及一点,ntp服务,默认只会同步系统时间。如果想要让ntp同时同步硬件时间,可以设置/etc/sysconfig/ntpdate 文件。
在/etc/sysconfig/ntpdate 文件中,把SYNC_HWCLOCK=no 改成SYNC_HWCLOCK=yes
就可以让硬件时间与系统时间一起同步。

2、linux系统时间和Bios时间是不是一定一样?
互动:linux系统时间和BIOS时间是不是一定一样?
查看硬件BIOS时间:
hwclock -r :读出BIOS的时间参数
hwclock -w :将当前系统时间写入BIOS中。
例:
[root@xuegod63 ~]# date -s "2015-3-6 21:13"
Fri Mar 6 21:13:00 CST 2015
[root@xuegod63 ~]# hwclock -r
Fri 06 Mar 2015 08:17:56 PM CST -0.720333 seconds
[root@xuegod63 ~]# date
Fri Mar 6 21:13:05 CST 2015
[root@xuegod63 ~]# hwclock -w
[root@xuegod63 ~]# hwclock -r
Fri 06 Mar 2015 09:13:20 PM CST -0.095199 seconds

三、搭建时间同步服务器

1、ntp搭建

131操作:
在server端安装ntpd服务端,关闭防火墙或者放通防火墙端口
yum install -y ntp
#安装ntpd服务
systemctl stop firewalld
#关闭防火墙,如果不想关闭防火墙可以放通端口
firewall-cmd --permanent --add-port=123/udp
firewall-cmd --permanent --add-port=123/tcp
#防火墙具体还要看你们配置没有,如有配置请注意安全区域。
编辑/etc/ntp.conf 并更改文件内容
vim /etc/ntp.conf
#修改如下文件内容
restrict 127.0.0.1
restrict 192.168.10.0 mask 255.255.255.0 nomodify notrap
#允许那些网段或者IP同步,不做限制则0.0.0.0 mask 0.0.0.0.需要注意的是4.2版本的ntpd的restrict参数不要加notrust否则客户端会同步不了。
#部分参数说明:
#ignore :关闭所有的 NTP 联机服务
#nomodify:客户端不能修改服务端的时间参数,但客户端可以同步时间。
#notrust :拒绝没有通过认证的客户端机器
#noquery :不提供客户端的时间查询:用户端不能使用ntpq,ntpc等命令来查询ntp服务器
#notrap :不提供trap远端登陆
#nopeer :用于阻止主机尝试与服务器对等,并允许欺诈性服务器控制时钟
#kod : 访问违规时发送 KoD 包。
server ntp.aliyun.com prefer
#server自身和谁同步。我这里用的是阿里云的。
server 127.127.1.0
#把自身的时间同步给客户端。

配置完毕启动服务
systemctl start ntpd

将自身时间改变一下
date -s 18:18:18

132操作:
[root@k8s02 /]# date
Sat Jan 8 15:16:22 CST 2022
[root@k8s02 /]# ntpdate 192.168.10.131
8 Jan 18:19:03 ntpdate[8849]: step time server 192.168.10.131 offset 10945.204587 sec
[root@k8s02 /]# date
Sat Jan 8 18:19:06 CST 2022

客户端配置
客户端需要修改/etc/ntp.conf,添加以下内容
server 192.168.10.131 #指名上层NTP服务器

在此主机上可以使用命令ntpstat或ntpq -p 这两个命令。
ntpstat:这条命令可以查看我们的客户端(此处为192.168.10.132)是否与server(192.168.10.131) 连接成功。
本机已经和156.0.26.6这台位于第七层的NTP服务器同步时间,时间精确到36ms以内。每个512s去同步一次时间。
##如果太频繁,可以定时任务同步ntpdate 192.168.10.131
ntpq -p:此命令可以列出当前主机的NTP和上层NTP的状态。

2、chrony搭建

配置131服务器
1、安装chrony同步时间服务
2、chrony搭建内网服务
配置服务器节点
yum install chrony -y
systemctl stop ntpd
修改/etc/chrony.conf配置
vim /etc/chrony.conf
server ntp.aliyun.com iburst #表示与本机IP同步时间,其他server注释或删除
allow 192.168.10.0/24 # 指定一台主机、子网,或者网络以允许或拒绝NTP连接到扮演时钟服务器的机器
启动并自启chrony服务
systemctl restart chronyd
systemctl enable chronyd
ss -unal | grep 123 #通过udp协议

配置132客户端
yum install chrony -y
systemctl stop ntpd
vim /etc/chrony.conf
#修改一项,其他server注释或删除
server 192.168.10.131 iburst #表示与服务端IP同步时间
启动并自启chrony服务
systemctl restart chronyd #做好服务端的在重启
systemctl enable chronyd

[root@k8s02 /]# chronyc sources
210 Number of sources = 1
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* k8s01 3 6 17 18 -4722ns[ +39us] +/- 13ms

以上是关于秘籍第二式 时间同步配置的主要内容,如果未能解决你的问题,请参考以下文章

薪酬数据分析,第二式:数据透视表

张东武 老架一路74式第一段第二式 金刚捣碓

六脉神剑第二式-读写分离之双箭齐发

​观察六脉神剑第二式-读写分离之双箭齐发

TCP与UDP~第二式

Shell脚本必备十八式之第二式条件语句