3.chrony服务器

目录

1. 简介

1.1. 重要性

1.2. Linux的两个时钟

1.3. 设置日期时间

1.3.1. timedatectl命令设置

1.3.2. date命令设置

1.4. NTP

1.5. Chrony介绍

2. 安装与配置

2.1. 安装:

2.2. Chrony配置文件分析

2.3. 同步时间服务器

2.3.1. 授时中心

2.3.2. 实验1

2.3.3. 实验2

2.4. chronyc命令

2.4.1. 查看时间服务器:

2.4.2. chronyc sources输出分析

2.5. 其它命令

3. 常见时区


1. 简介

1.1. 重要性

由于IT系统中,准确的计时非常重要,有很多种原因需要准确计时:

1.在网络传输中,数据包括和日志需要准确的时间戳

2.各种应用程序中,如订单信息,交易信息等 都需要准确的时间戳

1.2. Linux的两个时钟

硬件时钟RTC (Real Time Clock):即BIOS时钟,也就是我们主板中用电池供电的时钟,是将时间写入到 BIOS中,系统断电后时间不会丢失,可以在开机时通过主板程序中进行设置 系统时钟 (System Clock) :顾名思义也就是Linux系统内核时钟、软件时钟,是由Linux内核来提供的,系统时钟是基于内存,如果系统断电时间就会丢失

# 查看硬件时间

# 查看硬件时间
[root@server ~]# hwclock
2023-05-30 09:48:32.535594+08:00

系统时钟 (System Clock) :顾名思义也就是Linux系统内核时钟、软件时钟,是由Linux内核来提供的, 系统时钟是基于内存,如果系统断电时间就会丢失

# 查看系统时间
[root@server ~]# date
2023年 05月 30日 星期二 09:50:50 CST
[root@server ~]# date -s 10:00 # 修改为错误的时间
2023年 05月 30日 星期二 10:00:00 CST
[root@server ~]# date
2023年 05月 30日 星期二 10:00:01 CST
[root@server ~]# hwclock -s # 向硬件时间同步
[root@server ~]# date
2023年 05月 30日 星期二 09:51:50 CST

1.3. 设置日期时间

1.3.1. timedatectl命令设置

# [root@server ~]# timedatectl # 显示当前的日期和时间
Local time: 三 2023-11-15 13:00:26 CST # 本地时间
Universal time: 三 2023-11-15 05:00:26 UTC # 世界时间
RTC time: 三 2023-11-15 06:16:16 # 硬件时间
Time zone: Asia/Shanghai (CST, +0800) # 时区
System clock synchronized: yes # 时间是否已同步
NTP service: active # 时间同步服务已启动
RTC in local TZ: no # no表示硬件时钟设置为协调世界时(UTC),yes表示硬件时钟设置为本地时间
[root@server ~]# systemctl status chronyd # 查看时间同步服务状态(由于默认使用chrony服务同步时间,不再使用ntp服务)
[root@server ~]# timedatectl set-ntp no # 关闭时间同步,以方便修改日期时间
[root@server ~]# systemctl status chronyd
[root@server ~]# timedatectl set-time "2023-12-12" # 设置新日期
[root@server ~]# timedatectl set-time "12:12:12"
[root@server ~]# timedatectl
Local time: 二 2023-12-12 12:12:22 CST
Universal time: 二 2023-12-12 04:12:22 UTC
RTC time: 二 2023-12-12 04:12:23
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: no
NTP service: inactive
RTC in local TZ: no
[root@server ~]# timedatectl list-timezones | grep Asia # 查看可用时区
[root@server ~]# timedatectl set-timezone Asia/Shanghai # 设置时区

1.3.2. date命令设置

[root@server ~]# date # 显示
[root@server ~]# date +"%Y-%m-%d %H:%M:%S" # 格式显示
# 设置日期时间
[root@server ~]# date -s 2023-11-15
2023年 11月 15日 星期三 00:00:00 CST
[root@server ~]# date -s 14:33:33
2023年 11月 15日 星期三 14:33:33 CST
[root@server ~]# date
2023年 11月 15日 星期三 14:33:34 CST

注意:以便于以后的实验正常执行,可恢复快照后继续

1.4. NTP

1.NTP:(Network Time Protocol,网络时间协议)是由RFC 1305定义的时间同步协议,用来在分布式时 间服务器和客户端之间进行时间同步。

2.NTP基于UDP报文进行传输,使用的UDP端口号为123

3.NTP可以对网络内所有具有时钟的设备进行时钟同步,使网络内所有设备的时钟保持一致,从而使设备能 够提供基于统一时间的多种应用,对于运行NTP的本地系统,既可以接受来自其他时钟源的同步,又可以作为时钟源同步其他的时钟,并且可以和其他设备互相同步。

4.NTP的其精度在局域网内可达0.1ms,在互联网上绝大多数的地方其精度可以达到1-50ms

1.5. Chrony介绍

1.chrony是一个开源的自由软件,它能帮助你保持系统时钟与时钟服务器(NTP)同步,因此让你的时间保持精确。

2.chrony由两个程序组成,分别是chronyd和chronyc

(1)chronyd:是一个后台运行的守护进程,用于调整内核中运行的系统时钟和时钟服务器同步。它确定计算机增减时间的比率,并对此进行补偿。

(2)chronyc:提供了一个用户界面,用于监控性能并进行多样化的配置。它可以在chronyd实例控制的计算机上工作,也可以在一台不同的远程计算机上工作

3.注意:Chrony与NTP都是时间同步软件,两个软件不能够同时开启,会出现时间冲突,openeuler中默认使用chrony作为时间服务器,不在支持NTP软件包

[root@server ~]# systemctl status ntp # 查看ntp状态

2. 安装与配置

2.1. 安装:

# 默认已安装,若需要安装则可执行:
[root@server ~]# yum install chrony -y
[root@server ~]# systemctl start chronyd
[root@server ~]# systemctl enable chronyd

2.2. Chrony配置文件分析

主配置文件:/etc/chrony.conf

[root@server ~]# vim /etc/chrony.conf
# 使用 pool.ntp.org 项目中的公共服务器。
# 或者使用server开头的服务器,理论上想添加多少时间服务器都可以
# iburst表示的是首次同步的时候快速同步
pool pool.ntp.org iburst

# 根据实际时间计算出服务器增减时间的比率,然后记录到一个文件中,在系统重启后为系统做出最佳时间 补偿调整。
driftfile /var/lib/chrony/drift

# 如果系统时钟的偏移量大于1秒,则允许系统时钟在前三次更新中步进。
# Allow the system clock to be stepped in the first three updates if its offset is
larger than 1 second.
makestep 1.0 3

# 启用实时时钟(RTC)的内核同步。
# Enable kernel synchronization of the real-time clock (RTC).
rtcsync

# 通过使用 hwtimestamp 指令启用硬件时间戳
# Enable hardware timestamping on all interfaces that support it.
#hwtimestamp *
# Increase the minimum number of selectable sources required to adjust the systemclock.
#minsources 2

# 指定 NTP 客户端地址,以允许或拒绝连接到扮演时钟服务器的机器
# Allow NTP client access from local network.
#allow 192.168.48.0/24

# Serve time even if not synchronized to a time source.
# local stratum 10

# 指定包含 NTP 身份验证密钥的文件。
# Specify file containing keys for NTP authentication.
# keyfile /etc/chrony.keys
# 指定日志文件的目录。
# Specify directory for log files.
logdir /var/log/chrony

# 选择日志文件要记录的信息。
# Select which information is logged.
# log measurements statistics tracking

2.3. 同步时间服务器

2.3.1. 授时中心

210.72.145.44 国家授时中心
ntp.aliyun.com 阿里云
s1a.time.edu.cn 北京邮电大学
s1b.time.edu.cn 清华大学
s1c.time.edu.cn 北京大学
s1d.time.edu.cn 东南大学
s1e.time.edu.cn 清华大学
s2a.time.edu.cn 清华大学
s2b.time.edu.cn 清华大学
s2c.time.edu.cn 北京邮电大学
s2d.time.edu.cn 西南地区网络中心
s2e.time.edu.cn 西北地区网络中心
s2f.time.edu.cn 东北地区网络中心
s2g.time.edu.cn 华东南地区网络中心
s2h.time.edu.cn 四川大学网络管理中心
s2j.time.edu.cn 大连理工大学网络中心
s2k.time.edu.cn CERNET桂林主节点
s2m.time.edu.cn 北京大学
ntp.sjtu.edu.cn 202.120.2.101 上海交通大学

2.3.2. 实验1

同步时间

第一步:先修改成错误时间

[root@server ~]# date -s 10:30
2023年 05月 30日 星期二 10:30:00 CST

第二步:编制chrony的配置文件

[root@server ~]# vim /etc/chrony.conf
# 定位第3行,删除后添加阿里的时间同步服务地址
server ntp.aliyun.com iburst
# 注意:也可以先清空chrony.conf内容,将阿里开源提供的时间服务器推荐配置复制粘贴到该文件中
server ntp.aliyun.com iburst
stratumweight 0
driftfile /var/lib/chrony/drift
rtcsync
makestep 10 3
bindcmdaddress 127.0.0.1
bindcmdaddress ::1
keyfile /etc/chrony.keys
commandkey 1
generatecommandkey
logchange 0.5
logdir /var/log/chrony

第三步:重启服务

[root@server ~]# systemctl restart chronyd

第四步:时间同步

[root@server ~]# chronyc sources -v
.-- Source mode '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current best, '+' = combined, '-' = not combined,
| / 'x' = may be in error, '~' = too variable, '?' = unusable.
|| .- xxxx [ yyyy ] +/- zzzz
|| Reachability register (octal) -. | xxxx = adjusted offset,
|| Log2(Polling interval) --. | | yyyy = measured offset,
|| \ | | zzzz = estimated error.
|| | | \
MS Name/IP address Stratum Poll Reach LastRx Last sample
==========================================================================
^* 203.107.6.88 2 6 17 56 +493us[ -335us] +/- 34ms

第五步:查看时间是否同步

[root@server ~]# timedatectl status
		Local time: 二 2023-05-30 10:24:39 CST
		Universal time: 二 2023-05-30 02:24:39 UTC
		RTC time: 二 2023-05-30 02:24:40
		Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes # yes 表名已同步
		NTP service: active
		RTC in local TZ: no
[root@server ~]# date
2023年 05月 30日 星期二 10:26:14 CST

2.3.3. 实验2

搭建本地时间同步服务器

架构

要求

(1)服务端server向阿里时间服务器进行时间同步

(2)客户端node1向服务端server进行时间同步

第一步:定位服务端server

# 安装软件
[root@server ~]# yum install chrony -y # 默认已安装
# 编辑配置文件,定位第3行,修改为阿里的时间服务地址
[root@server ~]# vim /etc/chrony.conf
server ntp.aliyun.com iburst
# 重启服务
[root@server ~]# systemctl restart chronyd
# 测试
[root@server ~]# chronyc sources -v
[root@server ~]# timedatectl status
# 设置允许客户端时间同步
[root@server ~]# vim /etc/chrony.conf
26 allow 192.168.48.131/24 # 定位第26行,设置谁可以访问本机进行同步
[root@server ~]# systemctl restart chronyd

第二步:定位客户端node1

# 安装软件
[root@node1 ~]# yum install chrony -y

# 编辑配置文件
[root@node1 ~]# vim /etc/chrony.conf # 修改第3行为server的地址
server 192.168.48.130 iburst

# 重启服务
[root@node1 ~]# systemctl restart chronyd

# 测试
[root@node1 ~]# chronyc sources -v
.-- Source mode '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current best, '+' = combined, '-' = not combined,
| / 'x' = may be in error, '~' = too variable, '?' = unusable.
|| .- xxxx [ yyyy ] +/- zzzz
|| Reachability register (octal) -. | xxxx = adjusted offset,
|| Log2(Polling interval) --. | | yyyy = measured offset,
|| \ | | zzzz = estimated error.
|| | | \
MS Name/IP address Stratum Poll Reach LastRx Last sample
=========================================================================
^* 192.168.48.130 3 6 17 39 +20us[ +252us] +/- 38ms

[root@node1 ~]# timedatectl status
      Local time: 二 2023-05-30 11:08:37 CST
      Universal time: 二 2023-05-30 03:08:37 UTC
      RTC time: 二 2023-05-30 03:08:38
      Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
     NTP service: active
      RTC in local TZ: no

注意:客户端同步失败的原因

(1)检查网络连通性,需要能ping通

(2)检查服务端的allow参数

(3)需要重启服务

2.4. chronyc命令

2.4.1. 查看时间服务器:

[root@server ~]# chronyc sources -v # -v参数表示显示内容是否有解释
.-- Source mode '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current best, '+' = combined, '-' = not combined,
| / 'x' = may be in error, '~' = too variable, '?' = unusable.
|| .- xxxx [ yyyy ] +/- zzzz
|| Reachability register (octal) -. | xxxx = adjusted offset,
|| Log2(Polling interval) --. | | yyyy = measured offset,
|| \ | | zzzz = estimated error.
|| | | \
MS Name/IP address Stratum Poll Reach LastRx Last sample
======================================================================

2.4.2. chronyc sources输出分析

(1)M:这表示信号源的模式。^表示服务器,=表示对等方,#表示本地连接的参考时钟。

(2)S:此列指示源的状态

Name/IP address:显示服务器源的名称或IP地址

Stratum:表示源的层级,层级1表示本地连接的参考时钟,第2层表示通过第1层级计算机的时钟实现同步,依此类推

Poll:表示源轮询频率,以秒为单位,值是基数2的对数,例如值6表示每64秒进行一次测量,chronyd会根据当时的情况自动改变轮询频率

Reach:表示源的可达性的锁存值(八进制数值),该锁存值有8位,并在当接收或丢失一次时进行一次更新,值377表示最后八次传输都收到了有效的回复

LastRx:表示从源收到最近的一次的时间,通常是几秒钟,字母m,h,d或y分别表示分钟,小时,天或年

Last sample:表示本地时钟与上次测量时源的偏移量,方括号左侧的数字表示原始测量值,方括号右侧表示偏差值,+/-指示器后面的数字表示测量中的误差范围。正偏移表示本地时钟位于源时钟之前

2.5. 其它命令

查看时间服务器的状态

[root@server ~]# chronyc sourcestats -v 1

查看时间服务器是否在线

[root@server ~]# chronyc activity -v

同步系统时钟

[root@server ~]# chronyc -a makestep 1

3. 常见时区

(1)UTC 整个地球分为二十四时区,每个时区都有自己的本地时间。在国际无线电通信场合,为了统一起见, 使用一个统一的时间,称为通用协调时(UTC, Universal Time Coordinated)。

(2)GMT 格林威治标准时间 (Greenwich Mean Time)指位于英国伦敦郊区的格林尼治天文台的标准时间,因为本初子午线被定义在通过那里的经线。(UTC与GMT时间基本相同,本文中不做区分)

(3)CST 中国标准时间 (China Standard Time)GMT + 8 = UTC + 8 = CST

(4)DST夏令时(Daylight Saving Time) 指在夏天太阳升起的比较早时,将时间拨快一小时,以提早日光的使用。(中国不使用)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ssh登录失败:connection closed by foreign host

问题1: ssh登录不上,连接上就断掉 inetd.conf显示2277已打开,ip也没有冲突。 但是这两个文件是空的(size 0k): dropbear_dss_host_key dropbear_rsa_host_key 把/etc/dropbear里面的东西删掉,重新生成秘钥文件: …

Java强训day1(选择题编程题)

选择题 class Person{//堆public String name;public int age;public double weight;//方法区public void eat(){System.out.println(name"eat()");} }public class TestDemo2 {public static void main(String[] args) {//栈Person p1new Person();Person p2new Per…

基于python豆瓣电影评论的情感分析和聚类分析,聚类分析有手肘法进行检验,情感分析用snownlp

基于Python的豆瓣电影评论的情感分析和聚类分析是一种用于探索电影评论数据的方法。 情感分析 情感分析旨在从文本中提取情感信息,并对其进行分类,如正面、负面或中性。在这里,我们使用了一个名为snownlp的Python库来进行情感分析。Snownlp是…

深入了解达梦数据库的增删查改操作:从入门到精通

目录 前言: 一.达梦数据库的增删改查 1.创建数据库 2.插入数据 3.查看数据 4.删除数据 5.数据 前言: 在当今数字化的时代,数据库已经成为企业和组织的核心资产,是实现高效数据处理、存储和管理的重要工具。达梦数据库&…

linux下msyql自动备份

环境变量配置 vim /etc/profile 追加/usr/local/mysql,MySQL数据库默认安装路径 source /etc/profile 创建定时备份脚本 mkdir /home/mysqlDump/ vim /home/mysqlDump/mysql.sh #!/bin/bash mysqldump -uroot -p123456 bim_ry_prod > /home/mysqlDump/bim…

Qt/QML编程之路:QtMultimedia/Radio(41)

Qt有一个神奇的组件,那就是Qtmultimedia,它有强大的功能: 看看很多多媒体功能,都能在这里找到,不仅audio、video,还有camera、sound和radio。 比如: import QtQuick 2.0 import QtMultimedia 5.0Text {text: "Press Me!"font.pointSize: 24Audio {id: playM…

《幻兽帕鲁》被指AI缝合,开发过程疑点重重,最后附游戏安装教程

由日本游戏工作室Pocketpair开发的《Palworld / 幻兽帕鲁》毫无疑问成为了2024年的首个巨热游戏!上周五(2024年1月19日)游戏上线抢先体验,仅在3天内销量就已突破400万!并于2024年1月21日创下了1291967名同时在线玩家的…

Linux 下 TFTP 服务搭建及 U-Boot 中使用 tftp 命令实现文件下载

目录 搭建 TFTP 服务文件下载更多内容 TFTP(Trivial File Transfer Protocol,简单文件传输协议)是 TCP/IP 协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务,端口号…

Ddosify 作为压测工具的使用指南

文章目录 1. 写在最前面1.1 Kubernetes 监控1.2 Performance Testing 2. 命令行安装 & 使用2.1 安装2.2 使用2.2.1 默认的例子2.2.2 定制的例子 3. Dashboard 安装 & 使用3.1 安装3.2 使用3.2.1 简单使用3.2.3 依赖的服务介绍 4. 碎碎念5. 参考资料 1. 写在最前面 由于…

空调设计软件工程师考虑点

空调设计软件工程师考虑点 看如的下边有输入压力P,单位不同,MPG是相对压力,Kpa是绝对压力。绝对压力比相对压力大一个大气压,即100kpa。 海立压缩机直接给转速值就行。CAN数据格式,Motoral高位在前,Intel高…

解决找不到vcruntime140_1.dll无法继续执行代码的常用方法

Vcruntime140_1.dll文件的缺失是一个常见的系统问题,它可能会引发一系列不良影响。具体来说,当计算机系统中这个至关重要的动态链接库文件(vcruntime140_1.dll)丢失或损坏时,依赖于该文件运行的各种应用程序将无法获取…

【3.4数据库系统】逻辑结构设计

目录 1.关系模型的概念1.1 关系模型的基本概念1.2 关系模型相关概念 2.逻辑结构设计 1.关系模型的概念 1.1 关系模型的基本概念 关系模型属于数据模型 数据模型三要素:数据结构、数据操作、数据的约束条件。 1.2 关系模型相关概念 △目或度:关系模式中属性的个数。 △候选码…

5118优惠码vip、svip、专业版和旗舰版使用yhm666

5118大数据平台会员优惠码【yhm666】,结算时勾选“使用优惠码”,然后在优惠码窗口中输入yhm666,然后点确定即可享受特价会员价格。阿腾云atengyun.com分享如下图: 5118会员优惠码【yhm666】 5118会员价格和使用优惠码之后的价格对…

springboot初始项目每一层的含义

一.创建的时候主要勾选了以下 二.项目架构 三.有的项目下创建出来,存在更多不同的层级 src/main/java/com/example/demo/controller: 控制器层,包含处理 HTTP 请求和响应的控制器类。 src/main/java/com/example/demo/service: 服务层,包含业…

Excel·VBA时间范围筛选及批量删除整行

看到一个帖子《excel吧-筛选开始时间,结束时间范围内的所有记录》,根据条件表中的开始时间和结束时间构成的时间范围,对数据表中的开始时间和结束时间范围内的数据进行筛选 目录 批量删除整行,整体删除批量删除整行,分…

77_组合

描述 给定两个整数 n 和 k,返回范围[1, n]中所有可能的 k 个数的组合。 你可以按任何顺序返回答案。 思路 数组问题 从横向上来看往往有 遍历、滑动窗口、动态规划等思路。但是,其实在遍历这种横向取数过程中,可以根据条件的判断形成树形操作…

提高设计效率的5款免费画图软件推荐

在当今的数字世界中,我们有各种各样的创作工具,尤其是绘图软件。所以问题是:我们应该如何选择许多免费绘图软件?为了回答这个问题,我们将在本文中免费介绍和评估10个领先的绘图软件。每一个都有自己独特的特点和优势&a…

蓝桥杯省赛无忧 课件41 选择排序

01 选择排序的思想 02 选择排序的实现 03 例题讲解 #include <iostream> using namespace std; void selectionSort(int arr[], int n) {int i, j, min_index;// 移动未排序数组的边界for (i 0; i < n-1; i) {// 找到未排序的部分中最小元素的索引min_index i;for (…

HTML炫酷页面代码分享

目录 代码雨 鼠标点击爱心特效 鼠标跟随特效 实例演示&#xff1a; 代码雨 鼠标点击爱心特效 鼠标跟随特效 代码雨 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Code</title><style>…

shell脚本-条件测试、

一.条件测试 1.&#xff08; &#xff09; 和 { } &#xff08;&#xff09;会进/data ,开启子shell { } 直接切过去了&#xff0c;不开子shell 小案例&#xff1a; 2. test 命令 测试特定的表达式是否成立&#xff0c;当条件成立&#xff0c;测试语句的返回值为0&#xff…