当前位置: 首页 > news >正文

时间同步服务核心知识笔记:原理、配置

一、时间同步服务

在 Linux 系统中,准确的时间至关重要。对于服务器集群,时间同步确保各节点间数据处理和交互的一致性,避免因时间差异导致的事务处理错误、日志记录混乱等问题。在分布式系统中,时间同步有助于协调任务调度、数据备份等操作。对于依赖时间戳的数据库系统,准确的时间是保证数据完整性和事务正确性的基础。

时间同步对以下场景至关重要:

日志一致性:多台服务器日志时间对齐,便于故障排查。

安全协议:Kerberos、SSL证书验证等依赖精确时间。

分布式系统:数据库集群、区块链节点等需严格时间同步。

定时任务:确保 cron 或 systemd timer 按计划执行。

 二、timedatectl 命令

(一)命令概述

timedatectl是 systemd 工具集中用于管理系统时间和日期的命令行工具,功能丰富且使用便捷。

(二)常用操作 

查看系统时间和日期

在终端输入timedatectl,可查看当前系统的时间、日期、时区、是否开启 NTP(网络时间协议)同步等信息。

Local time: 三 2024-09-25 14:30:00 CST ——> 当前系统时间

Universal time: 三 2024-09-25 06:30:00 UTC——>伦敦时间

RTC time: 三 2024-09-25 06:30:00——>硬件时间

Time zone: Asia/Shanghai (CST, +0800)——>时区

NTP enabled: yes——>系统时间同步开启

NTP synchronized: yes——>npy协议开启

RTC in local TZ: no

DST active: n/a

设置系统时间和日期

若要手动设置时间,可使用timedatectl set-time "YYYY-MM-DD HH:MM:SS"命令。

如设置时间为 2025 年 5 月 5 日 22 点整,执行timedatectl set-time "2025-05-5 22:00:00"。设置日期可单独使用timedatectl set-date "YYYY-MM-DD"

设置时区

使用timedatectl set-timezone 时区名称来设置系统时区。

例如设置为纽约时区,执行timedatectl set-timezone America/New_York。可通过timedatectl list-timezones查看所有可用时区。

开启或关闭 NTP 同步

开启 NTP 同步:timedatectl set-ntp true;关闭 NTP 同步:timedatectl set-ntp false。开启后,系统会自动与 NTP 服务器同步时间。

关闭时间系统锁(System clock synchronized) 

systemctl stop chronyd.service

 修改时间

先创建一个监视器方便观察时间修改变化

watch -n 1 timedatectl

timedatectl set-time

设置时间命令

timedatectl set-time "2025-5-5 12:12:12"

 三、chrony相关命令

(1) 设置同步时间

打开/etc/chrony.conf

vim /etc/chrony.conf

 

 重启 chronyd.service 服务

systemctl restart chronyd.service 

四、chrony.conf 配置文件

主要配置项

NTP 服务器配置

使用server关键字指定 NTP 服务器。例如:

server 0.centos.pool.ntp.org iburst

server 1.centos.pool.ntp.org iburst

server 2.centos.pool.ntp.org iburst

iburst选项表示在初始同步时,快速发送多个 NTP 请求,加快同步速度。可配置多个服务器,chronyd会尝试从不同服务器同步时间,提高可靠性。 

部署本地时间源(需要至少两台主机)

进入/etc/chrony.conf

vim /etc/chrony.conf

 

allow:指定一台主机、子网,或者网络以允许访问本服务器 

local stratum 10: 即使 server 指令中时间服务器不可用

重启服务

  systemctl start chronyd.service

再次进入

vim /etc/chrony.conf

 

重启服务 

systemctl restart chronyd.service 

服务端关闭火墙 

systemctl stop firewalld

相关文章:

  • 【信息系统项目管理师-论文真题】2006下半年论文详解(包括解题思路和写作要点)
  • C# 检查某个点是否存在于圆扇区内(Check whether a point exists in circle sector or not)
  • 五大神经网络开发实战:从入门到企业级部署
  • 【数据结构与算法】同余计算 哈希表与前缀和问题特征和模板化思路
  • 滚珠螺杆的精度如何保持?
  • Nacos源码—3.Nacos集群高可用分析二
  • Vue中的过滤器参数:灵活处理文本格式化
  • Docker 使用下 (二)
  • 知识图谱 + 大语言模型:打造更聪明、更可靠的AI大脑 —— 探索 GraphRAG 中文优化与可视化实践
  • VirtualBox调整虚拟机内存和CPU
  • 数据库的原子事务
  • 阿里云物联网平台--云产品流传
  • Qt6.8中进行PDF文件读取和编辑
  • 【Java学习笔记】包
  • LeetCode 0790.多米诺和托米诺平铺:难想条件的简单动态规划
  • 实验-数字电路设计2-复用器和七段数码管(数字逻辑)
  • 设计模式每日硬核训练 Day 18:备忘录模式(Memento Pattern)完整讲解与实战应用
  • Python基本语法(类和实例)
  • 基于MATLAB的图像色彩识别项目,彩色图像矩阵识别
  • Java:从入门到精通,你的编程之旅
  • 山大齐鲁医院通报“子宫肌瘤论文现男性患者”:存在学术不端
  • “五一”假期文旅热度创近3年新高,入境游订单飙升130%
  • 长三角铁路今日预计发送386万人次,沪宁、沪杭等方向尚有余票
  • 普京称俄中关系对维护世界稳定具有战略意义
  • 上音校园春日花艺引路人打卡,阳台音乐会吹响《玫瑰人生》
  • 乌美矿产协议文本公布,明确乌收益及协议优先级