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

发布于:2025-05-14 ⋅ 阅读:(8) ⋅ 点赞:(0)

一、时间同步服务

在 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


网站公告

今日签到

点亮在社区的每一天
去签到