实现【Linux--NTP 时间同步服务搭建】

news2024/11/15 17:23:50

实现【Linux--NTP 时间同步服务搭建】

    • 🔻 前言
    • 🔻 一、NTP 校时
      • 🔰 1.1 NTP 服务校时与 ntpdate 校时的区别
      • 🔰 1.2 NTP 校时服务搭建
        • 🔰 1.2.1 确认 ntp 的安装
        • 🔰 1.2.2 配置 ntp 服务
        • 🔰 1.2.3 启动 ntp 服务、查看状态
        • 🔰 1.2.4 ntp 服务设置开机自启动
        • 🔰 1.2.5 解决设置 ntp 开机自启动失败
        • 🔰 1.2.6 查看 ntp 服务器与上层 ntp 连通性
        • 🔰 1.2.8 查看 ntp 服务器与上层 ntp 的状态
      • 🔰 1.3 分节点测试时间同步
    • 🔻 总结—温故知新

在这里插入图片描述


👈【上一篇】
💖The Begin💖 点点关注,收藏不迷路💖
【下一篇】👉

🔻 前言

当应用系统走向多节点、高并发、高可用部署需求时不同节点时间不一致不仅仅会导致业务报错,还会出现将硬件时间直接频繁同步导致硬件故障

为解决以上问题-----引入NTP 校时服务

🔻 一、NTP 校时

🔰 1.1 NTP 服务校时与 ntpdate 校时的区别

ntp 服务校时不仅仅是时间同步服务器,它还可以做客户端与标准时间服务器进行同步时间,而且是平滑同步,并非 ntpdate 立即同步,在生产环境中慎用 ntpdate,ntp 与 ntpdate不可同时运行

简单来讲 NTP 服务本身是为了搭建校时服务器对外提供授时服务的。但是这个服务本
身有个功能,就是可以从这个服务工作的机器,配置一个外网的时间服务器,将本机的时间
校时成网络时间。自己时间不对,咋给别人校时?

🔰 1.2 NTP 校时服务搭建

主节点:本身可以上网,配置校时服务的时候配置上游国家授时中心服务地址,并对内网提供授时服务—这里环境均采用内网,手动设置主节点为标准时间,分节点同步
分节点:本身属于内网运行,上游地址是主节点。

🔰 1.2.1 确认 ntp 的安装

###1、这里已安装了ntp和ntpdate,为了方便演示,先移除
[root@pg-node01 ~]# rpm -qa | grep ntp
fontpackages-filesystem-1.44-8.el7.noarch
ntp-4.2.6p5-29.el7_8.2.x86_64
ntpdate-4.2.6p5-29.el7_8.2.x86_64
[root@pg-node01 ~]#

###2、先卸载移除ntp 与 ntpdate
yum -y remove ntp-4.2.6p5-29.el7_8.2.x86_64
yum -y remove ntpdate-4.2.6p5-29.el7_8.2.x86_64

###3、重新安装 ntp
yum -y install ntpdate
yum -y install ntp
###4、安装检查
[root@pg-node01 ~]# rpm -qa | grep ntp
fontpackages-filesystem-1.44-8.el7.noarch
ntp-4.2.6p5-29.el7_8.2.x86_64
ntpdate-4.2.6p5-29.el7_8.2.x86_64
[root@pg-node01 ~]# 

🔰 1.2.2 配置 ntp 服务

1、选择主节点pg-node01,修改其/etc/ntp.conf

210.72.145.44 (国家授时中心服务器IP地址)。

### 在 server 部分添加如下内容,并注释掉 server 0 ~ n
server 210.72.145.44 prefer
server 127.127.1.0 iburst

在这里插入图片描述

📖 说明:

server 210.72.145.44 prefer 这是国家新的授时服务器地址,prefer 是优先使用的意思,还有更多,可以直接百度,国内的NTP Server基本都属于科研教育机构所有,普通社会组织发布的NTP Server并不多。

server 127.127.1.0 iburst 指定本地NTP服务地址,这个 ip 不要改,意思是如果网络授时服务器源访问不到了则直接使用本机作为授时服务器源。

2、主节点以外的节点pg-node02,继续修改/etc/ntp.conf。

在 server 部分添加如下语句,将 server 指向主节点。

server 主节点 ip 地址

如:
server 192.168.181.11

在这里插入图片描述

3、操作系统防火墙开放 123 端口
由于 NTP 服务需要使用到 UDP 端口号 123,所以当系统的防火墙(Iptables)启动的情况下,必须开放 UDP 端口号 123

###开放 `UDP` 端口号 `123`
firewall-cmd --zone=public --add-port=123/udp --permanent
###查看所有已经开放的端口
#临时端口(默认为空)
firewall-cmd --list-ports

#永久开放端口(默认为空)
[root@pg-node01 ~]# firewall-cmd --list-ports --permanent
123/udp
[root@pg-node01 ~]# 

🔰 1.2.3 启动 ntp 服务、查看状态

### 启动 ntp 服务
[root@pg-node01 ~]# systemctl start ntpd.service

### ntp 服务管理命令

#查看 ntpd 服务状态
service ntpd status
#启动 ntpd 服务
service ntpd start 
#停止 ntpd 服务
service ntpd stop 
#重启 ntpd 服务
service ntpd restart 

🔰 1.2.4 ntp 服务设置开机自启动

检查 ntp 服务是否开机启动,将其设置为开机启动。

### 启动服务
systemctl start ntpd.service 
### 停止服务
systemctl stop ntpd.service 
### 将服务设置为自启动
systemctl enable ntpd.service 
### 将服务自启动关闭
systemctl disable ntpd.service

🔰 1.2.5 解决设置 ntp 开机自启动失败

重启后用 service ntpd status 命令查看服务是否启动,从给出的信息可知 ntp 已被设置为开机启动,但是开机启动并未成功。

[root@pg-node02 ~]# service ntpd status
Redirecting to /bin/systemctl status ntpd.service
● ntpd.service - Network Time Service
   Loaded: loaded (/usr/lib/systemd/system/ntpd.service; enabled; vendor preset: disabled)
   Active: inactive (dead)
[root@pg-node02 ~]# 

通过命令 chkconfig ntpd on 设置开机自启动,发现会将此命令转发到 systemctl enable ntpd.service 命令,也就是说最好使用后面的命令设置开机自启动。

[root@pg-node02 ~]# chkconfig ntpd on
Note: Forwarding request to 'systemctl enable ntpd.service'.
[root@pg-node02 ~]# 

原因是系统上安装了一个与 NTP 相冲突的工具:chrony。使用 systemctl is-enabled chronyd 来查看, chrony 被设置为enabled

[root@pg-node02 ~]# systemctl is-enabled chronyd
enabled
[root@pg-node02 ~]# 

将 chronyd 设置为 disable 后,再重启即可实现NTP自启动。

[root@pg-node02 ~]# systemctl disable chronyd
Removed symlink /etc/systemd/system/multi-user.target.wants/chronyd.service.
[root@pg-node02 ~]# 

🔰 1.2.6 查看 ntp 服务器与上层 ntp 连通性

### 查看命令
ntpstat
  • pg-node01

在这里插入图片描述

  • pg-node02
    在这里插入图片描述

ntpstat 命令查看时间同步状态,这个一般需要5-10分钟后才能成功连接和同步。所以,服务器启动后需要稍等下。

等一段时间之后,再次使用 ntpstat 命令查看状态,就会变成如下正常结果:

[root@pg-node02 ~]# ntpstat
synchronised to NTP server (192.168.181.11) at stratum 7
   time correct to within 21 ms
   polling server every 64 s
[root@pg-node02 ~]# 

在这里插入图片描述

🔰 1.2.8 查看 ntp 服务器与上层 ntp 的状态

### 命令
ntpq -p
  • pg-node01
[root@pg-node01 ~]#  ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 210.72.145.44   .INIT.          16 u    - 1024    0    0.000    0.000   0.000
*LOCAL(0)        .LOCL.           5 l   23   64  377    0.000    0.000   0.000
[root@pg-node01 ~]#
  • pg-node02
[root@pg-node02 ~]# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 pg-node01       LOCAL(0)         6 u   26   64    1    2.346  -679.68   0.000
[root@pg-node02 ~]# 

📖 说明:

remote:本机和上层 ntp 的 ip 或主机名,“+”表示优先,“*”表示次优先
refid:参考上一层 ntp 主机地址
st:stratum 阶层
when:多少秒前曾经同步过时间
poll:下次更新在多少秒后
reach:已经向上层 ntp 服务器要求更新的次数
delay:网络延迟
offset:时间补偿
jitter:系统时间与 bios 时间差

🔰 1.3 分节点测试时间同步

分节点不能上网,属于内网服务器从主节点获取时间,本身支持对内网提供授时服务,
但是不再对内网提供服务,仅仅满足自己的时间与主节点保持一致。

  • 设置分节点时间与主节点相差3h
####修改pg-node02分节点时间与主节点相差3h,主节点-now time :13:00:00
date -s 10:00:00

####写入BIOS
clock -w 

###显示bios时间
hwclock -r

####date查看---会自动同步pg-node01的时间
[root@pg-node02 ~]# date
Fri Jul  7 13:42:17 CST 2023
[root@pg-node02 ~]# 

🔻 总结—温故知新

❓ 该章详细介绍和实现了Linux--NTP 时间同步服务搭建。

👈【上一篇】
💖The End💖 点点关注,收藏不迷路💖
【下一篇】👉

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/729102.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

QTday1

#include "widget.h"Widget::Widget(QWidget *parent): QWidget(parent) {this->resize(500,600);this->setFixedSize(500,600);//设置窗口标题this->setWindowTitle("盗版qq");//设置窗口图标this->setWindowIcon(QIcon("D://QQ下载//ic…

【C++STL】list的反向迭代器

list的反向迭代器 文章目录 list的反向迭代器reverse.h疑问1:为什么在迭代器当中不需要写深拷贝、析构函数疑问2:为什么在迭代器当中需要三个模板参数?疑问3:反向迭代器是怎么实现的?疑问4:为什么*解引用不…

LCD_1602 显示单个字符

目录 效果图:​ 硬件接线: 源代码: Lcd1602.c lcd1602.h main.c 硬件:lcd1602 51单片机 串口 软件:stc keil 效果图: 硬件接线: LCD1602 RW RS E 分别接51单片机的P25 P26 P27 LCD1602…

决策树分析特征重要性可视化无监督特征筛选

from sklearn.tree import DecisionTreeClassifierdtc DecisionTreeClassifier() # 初始化 dtc.fit(x_train, y_train) # 训练# 获取特征权重值 weights dtc.feature_importances_ print(>>>特征权重值\n, weights)# 索引降序排列 sort_index np.argsort(weights…

【学习】ChatGPT对问答社区产生了哪些影响?

引用 StackExchange 社区 CEO Prashanth Chandrasekar 的一篇博客标题 “Community is the future of AI”,引出本文的观点,即ChatGPT对问答社区产生了颠覆性影响,问答社区必须釜底抽薪、涅槃重生,但我们必须坚信“社区才是AI的未…

慎用QGraphicsDropShadowEffect绘制阴影,会导致部分控件一直resizeEvent、重新绘制

我的程序还在创作中,代码还只是UI部分,数据都是固定的,也没有定时刷新之类代码,样式也只是使用了一小部分。有一天我发现我在QTableWidget添加自定义控件的时候,效应特别慢,而自定义控件只是在鼠标进入或离…

活动策划大揭秘:如何制定执行方案

对于刚转行做活动策划的小白,我对你的建议,就是两个字“借鉴”! 小白要写出一份优秀的活动策划与执行方案,“借鉴”其实是唯一的方式。 而且而且越资深,借鉴的越多。 当我是小白的时候,我做一个案子只看…

vue3模型代码

效果&#xff1a; 代码 <template><div class"json_box"><json-viewer :value"jsonData" :boxed"false" :expand-depth"5" :expanded"true" ></json-viewer></div> </template><sc…

哈利波特!AI动画已经这么稳定了?MJ控制角色统一性5种技巧;百度大模型Prompt开发与应用新课上线;SD进阶万字长文 | ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f916; 哈利波特动画视频&#xff0c;使用 TemporalNet 制作 img2img 动画 这是 Reddit 论坛小伙伴分享的自制动画&#xff0c;内容选自哈利波…

Apikit 自学日记:添加测试步骤-脚本步骤

脚本步骤 在流程测试用例界面&#xff0c;进入用例管理&#xff0c;点击 添加脚本[Javascript] 按钮&#xff1a; 进入编辑用例页面&#xff0c;点击 新API测试 新建一个 API 请求。 API 自动化测试平台为代码模式的测试用例设计了一套简单的API信息模板&#xff0c;因此只需要…

d3dx9_33.dll丢失怎么解决

d3dx9_33.dll的作用 在讨论如何修复d3dx9_33.dll丢失错误之前&#xff0c;我们首先需要了解d3dx9_33.dll的作用。d3dx9_33.dll是DirectX 9的一个核心文件&#xff0c;它是DirectX库的一部分&#xff0c;用于提供图形和多媒体功能支持。DirectX是由Microsoft开发的一组多媒体技…

java项目根据启动位置指定 log4j2日志输出到指定目录

痛点 我们在开发的 java 项目一般都会记录日志&#xff0c;日志输出位置通常使用相对路径记录到当前启动 jar 包的同一个父文件夹下面。 当我们使用像 jsch、ssh 这种远程启动 java 程序的时候会出现一个问题&#xff1a; 日志会输出到当前登录用户的目录下面&#xff08;如…

机器学习洞察 | 降本增效,无服务器推理是怎么做到的?

2022 年&#xff0c;无服务器推理受到了越来越多的关注。常见的推理方式包括实时推理、批量转换和异步推理&#xff1a; 实时推理&#xff1a;具有低延迟、高吞吐、多模型部署的特点&#xff0c;能够满足 A/B 测试的需求 批量转换&#xff1a;能够基于任务 (Job-based) 的系统…

故障排查:通过ssh远程执行命令时报错未找到命令

博客主页&#xff1a;https://tomcat.blog.csdn.net 博主昵称&#xff1a;农民工老王 主要领域&#xff1a;Java、Linux、K8S 期待大家的关注&#x1f496;点赞&#x1f44d;收藏⭐留言&#x1f4ac; 目录 故障详情问题原因解决方案命令使用全路径修改~/.bashrc 故障详情 最近…

设计模式 - 抽象工厂模式

学完工厂模式&#xff0c;才发现还有一个抽象工厂模式&#xff1b;学习后发现不论是通过接口方式、还是继承方式&#xff0c;都可以使用抽象工厂模式&#xff1b;但是个人建议更多的时候&#xff0c;我们可以优先考虑接口方式&#xff0c;毕竟 单继承&#xff0c;多实现 设计模…

HTML5基础语法与标签

一、 HTML5介绍 HTML5是什么&#xff1f; HTML5是超文本标记语言&#xff08;HTML&#xff09;的第五个主要版本&#xff0c;用于描述网页结构和呈现内容。它是到目前为止最新且最强大的HTML版本。 HTML5语法约定 1.标签是HTML语法中的基本单位&#xff0c;由尖括号 ​<>…

QT分屏按钮

效果&#xff1a;按钮弹出分屏选择 // gridpopwidget.h #ifndef GRIDPOPWIDGET_H #define GRIDPOPWIDGET_H#include <QWidget> #include <QMouseEvent>class GridPopWidget : public QWidget {Q_OBJECT public:explicit GridPopWidget(QWidget *parent nullptr);~…

MySQL第二天

MySQL第二天 文章目录 MySQL第二天一、第一题 题目二、第二题题目 一、第一题 题目 1、先创建该customers表 create table customers ( c_num int primary key auto_increment, c_name varchar(50), c_contact varchar(50), c_city varchar(50),c_birth datetime not null);2、…

java IO流(一) File类

File对象只能对文件进行操作&#xff0c;不能操作文件中的内容。 1 File对象的创建 要注意的是&#xff1a;路径中"“要写成”\“进行转义&#xff0c; 路径中”/"可以直接用&#xff0c;但是最好的是使用File.separator&#xff0c;它会根据系统的不同进行转化&a…

ROS:分布式通信

目录 一、前言二、方案2.1准备2.2配置文件修改2.3配置主机IP2.4配置从机IP2.5测试 一、前言 ROS是一个分布式计算环境。一个运行中的ROS系统可以包含分布在多台计算机上多个节点。根据系统的配置方式&#xff0c;任何节点可能随时需要与任何其他节点进行通信。 因此&#xff…