离线时钟同步服务

警告
本文最后更新于 2024-02-19,文中内容可能已过时。

离线时钟同步服务

参考博客:

centos7 离线部署 ntp 服务,实现内网服务器时间同步 - 简书

centos7 离线 时间同步_centos7 ntp 同步时间_了尘自无心的博客-CSDN 博客

时钟的重要性

系统时钟的准确性是很重要的,Linux 的很多服务都依赖于时钟,如果时钟不准确,调整起来就需要重启系统,而重启系统对于不能中断的服务来说,是很麻烦的,此外,我们开发的应用中,采用的一些 ID 算法,比如雪花算法,也是高度依赖于时钟的,如果因为时钟不准确而需要把时间往前调,即时间回拨,则会出现 ID 重复的问题,数据库如果以雪花算法生成的 ID 作为主键,则此时插入此 ID 数据就会报错。

时钟回拨场景是雪花算法的缺陷,现在市面上已经有很多其他的算法来规避这个问题,比如 Butterfly 蝴蝶算法

服务端

安装过程看参考博客

备份原配置文件

1
mv  /etc/ntp.conf  /etc/ntp.conf.bak

修改

1
2
3
4
5
6
7
8
#允许 192.168.1.0 网段服务器进行同步,拒绝其他服务器的同步
restrict 192.168.1.0 mask 255.255.255.0 nomodify
restrict 0.0.0.0 mask 0.0.0.0 nomodify notrap noquery notrust
restrict 127.0.0.1
restrict -6 ::1
#设置服务器无法同步外网时间,就和本地系统时间同步。
server 127.127.1.0
fudge   127.127.1.0 stratum 10

启动 NTP 服务

1
systemctl  start  ntpd

检查状态

1
systemctl status ntpd

设置开机自启,方便其他节点访问从而进行同步

1
systemctl enable ntpd

客户端

安装过程看参考博客

手动同步,假设 ntp 服务端 IP 为192.168.1.118

1
ntpdate  -u  192.168.1.118

配置半个小时同步一次:

在每一个客户端执行crontab -e,并且向其中添加以下内容

1
30 * * * * /usr/sbin/ntpdate  192.168.1.118

如果有 root 用户权限,放到/etc/cron.d/文件夹下更合适。

0%