【linux】Chrony服務器

簡介

1.1 時間的重要性

由于 IT 系統中,準確的計時非常重要,有很多種原因需要準確計時:
  • 在網絡傳輸中,數據包括和日志需要準確的時間戳
  • 各種應用程序中,如訂單信息,交易信息等 都需要準確的時間戳

1.2 時區

時區 Time Zone )是地球上使用同一個時間的區域,由于世界各國家與地區經度不同,地
方時也有所不同,因此會劃分為不同的時區。
常見的時區
  • UTC 整個地球分為二十四時區,每個時區都有自己的本地時間。在國際無線電通信場合,為了統一起見,使用一個統一的時間,稱為通用協調時(UTC, Universal Time Coordinated)
  • GMT 格林威治標準時間 (Greenwich Mean Time)指位于英國倫敦郊區的格林尼治天文臺的標準時間,因為本初子午線被定義在通過那里的經線。(UTCGMT時間 基本相同,本文中不做區分)
  • CST 中國標準時間 (China Standard Time)GMT + 8 = UTC + 8 = CST
  • DST夏令時(Daylight Saving Time) 指在夏天太陽升起的比較早時,將時間撥快一小時,以提早日光的使用。(中國不使用)

1.3 Linux的兩個時鐘

  • 硬件時鐘RTC (Real Time Clock):即BIOS時鐘,也就是我們主板中用電池供電的時鐘,是將時間寫入到BIOS中,系統斷電后時間不會丟失,可以在開機時通過主板程序中進行設置
# 查看硬件時間
[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.4 設置日期時間

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 list-timezones | grep Asia # 查看可用時
區
[root@server ~]# timedatectl set-timezone Asia/Shanghai # 設置時區
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.5 NTP

  • NTP:(Network Time Protocol,網絡時間協議)是由RFC 1305定義的時間同步協議,用來在分布式時間服務器和客戶端之間進行時間同步。
  • NTP基于UDP報文進行傳輸,使用的UDP端口號為123
  • NTP可以對網絡內所有具有時鐘的設備進行時鐘同步,使網絡內所有設備的時鐘保持一致,從而使設備能夠提供基于統一時間的多種應用,對于運行NTP的本地系統,既可以接受來自其他時鐘源的同步,又可以作為時鐘源同步其他的時鐘,并且可以和其他設備互相同步。
  • NTP的其精度在局域網內可達0.1ms,在互聯網上絕大多數的地方其精度可以達到1-50ms

1.6 Chrony介紹

  • chrony是一個開源的自由軟件,它能幫助你保持系統時鐘與時鐘服務器(NTP同步,因此讓你的時間保持精確。
  • chrony由兩個程序組成,分別是chronydchronyc
    • chronyd:是一個后臺運行的守護進程,用于調整內核中運行的系統時鐘和時鐘服務器同步。它確定計算機增減時間的比率,并對此進行補償。
    • chronyc:提供了一個用戶界面,用于監控性能并進行多樣化的配置。它可以在chronyd實例控制的計算機上工作,也可以在一臺不同的遠程計算機上工作
注意: Chrony NTP 都是時間同步軟件,兩個軟件不能夠同時開啟,會出現時間沖突,openeuler 中默認使用 chrony 作為時間服務器,不再支持 NTP 軟件包
[root@server ~]# systemctl status ntp # 查看ntp狀態
[root@server ~]# systemctl status chronyd #查看chronyd狀態

安裝與配置

2.1 安裝

2.2 Chrony配置文件分析

# 使用 pool.ntp.org 項目中的公共服務器。
# 或者使用server開頭的服務器,理論上想添加多少時間服務器都可以
# iburst表示的是首次同步的時候快速同步

2.3 同步時間服務器

授時中心

ntp.aliyun.com 阿里云
.....

實驗一:客戶端向阿里云服務器進行同步時間

編輯配置文件:

修改時間服務器:

設置錯誤的時間:

?重啟配置文件,再驗證是否同步成功:

實驗二:客戶端向配置好阿里云服務器的服務端進行同步時間

  • 搭建本地時間同步服務器
  • 架構
性質IP地址同步對象
服務端server192.168.126.132ntp.aliyun.com
客戶端node1192.168.126.130192.168.126.132
  • 要求
    • 服務端server向阿里時間服務器進行時間同步
    • 客戶端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

該例將此改為:192.168.126.132

重啟客戶端配置文件:

  • 注意:客戶端同步失敗的原因
    • 檢查網絡連通性,需要能ping
    • 檢查服務端的allow參數
    • 需要重啟服務

2.4 chronyc命令

查看時間服務器:

chronyc sources輸出分析:

*CHRONYD當前同步到的源
+表示可接受的信號源,與選定的信號源組合在一起
-表示被合并算法排除的可接受源
表示已失去連接的源
x表示chronyd認為是虛假行情的時鐘(即,其時間與大多數其他來源不一致)
~表示時間似乎具有太多可變性的來源

其它命令

#查看時間服務器的狀態
[root@server ~]# chronyc sourcestats -v#查看時間服務器是否在線
[root@server ~]# chronyc activity -v#同步系統時鐘
[root@server ~]# chronyc -a makestep

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/78670.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/78670.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/78670.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

mysql查看哪些表的自增id已超過某個值

場景 想看哪些表數據比較大,如果用count 比較慢,同時表設計如果是自增,有沒有辦法一次查出自增id已超過某值的所有表呢。 方法 SELECT AUTO_INCREMENT,TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA 庫名 AND AUTO_INCRE…

SiamMask原理詳解:從SiamFC到SiamRPN++,再到多任務分支設計

SiamMask原理詳解:從SiamFC到SiamRPN,再到多任務分支設計 一、引言二、SiamFC:目標跟蹤的奠基者1. SiamFC的結構2. SiamFC的局限性 三、SiamRPN:引入Anchor機制的改進1. SiamRPN的創新2. SiamRPN的進一步優化 四、SiamMask&#x…

SpringBoot終極形態:AI生成帶OAuth2鑒權的微服務模塊(節省20人日)

在數字化轉型的浪潮中,開發效率和質量是企業競爭力的關鍵要素。飛算 JavaAI 作為一款創新的 AI 工具,能在 Spring Boot 開發中,自動生成完整微服務模塊,極大提升開發效率。下面,我們就詳細介紹如何借助飛算 JavaAI,實現 Spring Boot 微服務模塊的自動化生成。 飛算 JavaAI 簡介…

Spring緩存注解深度實戰:3大核心注解解鎖高并發系統性能優化?

引言:緩存——高并發系統的“性能加速器”? 在互聯網應用中,數據庫查詢往往是性能瓶頸的核心。當每秒數千次的請求直接沖擊數據庫時,系統響應速度會急劇下降,甚至引發宕機風險。?緩存技術?應運而生,成為解決這一痛…

CSS元素動畫篇:基于當前位置的變換動畫(二)

基于當前位置的變換動畫(二) 前言旋轉效果類元素動畫搖擺動畫效果效果預覽代碼實現 搖晃動畫效果效果預覽代碼實現 螺旋旋轉效果預覽代碼實現 結語 前言 CSS元素動畫一般分為兩種:一種是元素基于當前位置的變換動畫,通過不明顯的…

Qt/C++開發監控GB28181系統/設備注冊/設備注銷/密碼認證/心跳保活/校時

一、前言 根據gb28181協議文檔,第一步就是需要實現設備的注冊,和onvif不同,gb是反過來的,設備端主動連接服務端,而onvif是服務端主動發出搜索,設備被動應答,包括后續的交互幾乎都是被動應答&am…

MATLAB 中的圖形繪制

一、線圖 plot 函數用來創建x和y值的簡單線圖。 x 0 : 0.05 : 30; %從0到30,每隔0.05取一次值 y sin(x); plot(x,y,LineWidth,2) %若(x,y,LineWidth,2)可變粗 xlabel("橫軸標題") ylab…

go語言八股文(五)

1.go的局部變量是分配在棧上還是在堆上 在Go語言中,局部變量的內存分配(棧或堆)由編譯器基于逃逸分析(escape analysis)來決定。以下是總結和具體示例: 棧上分配 當局部變量的生命周期嚴格限定在函數作用…

Gradients of Matrix-Matrix Multiplication in Deep Learning

Gradients of Matrix-Matrix Multiplication in Deep Learning 1. Matrix multiplication2. Derivation of the gradients2.1. Dimensions of the gradients2.2. The chain rule2.3. Derivation of the gradient ? L ? A \frac{ {\partial L} }{ {\partial \boldsymbol {\bo…

Spring Boot 框架簡介

? Spring Boot 框架簡介 1?? 🚀 快速構建 Spring Boot 能夠快速構建可直接運行的、企業級 Spring 應用。 2?? ?? “約定優于配置” 該框架采用"約定優于配置"理念,默認集成 Spring 平臺與主流第三方庫,開發者僅需簡單配置…

【Robocorp實戰指南】Python驅動的開源RPA框架

目錄 前言技術背景與價值當前技術痛點解決方案概述目標讀者說明 一、技術原理剖析核心概念圖解核心作用講解關鍵技術模塊說明技術選型對比 二、實戰演示環境配置要求核心代碼實現案例1:網頁數據抓取案例2:Excel報表生成 運行結果驗證 三、性能對比測試方…

如何使用 Spring Boot 實現分頁和排序:配置與實踐指南

在現代 Web 應用開發中,分頁和排序是處理大量數據時提升用戶體驗和系統性能的關鍵功能。Spring Boot 結合 Spring Data JPA 提供了簡單而強大的工具,用于實現數據的分頁查詢和動態排序,廣泛應用于 RESTful API、后臺管理系統等場景。2025 年&…

使用 LLM助手進行 Python 數據可視化

在數據科學中,數據可視化是一項至關重要的任務,旨在揭示數據背后的模式和洞察,并向觀眾傳達這些信息。然而,在編程語言(如 Python)中創建有洞察力的圖表有時可能會耗時且復雜。本文介紹了一種借助 AI 助手&…

RASP技術是應用程序安全的“保護傘”

對于企業組織而言,隨著新技術的不斷涌現,企業在應用程序和數據安全方面也面臨著諸多挑戰。之所以如此,是因為常見的保護措施,如入侵防御系統和Web應用程序防火墻,有助于檢測和阻止網絡層的攻擊,但它們無法看…

安卓基礎(接口interface)

??1. 接口的定義與實現?? ??(1) 定義接口?? // 定義一個 "動物行為" 的接口 public interface Animal {void eat(); // 抽象方法(無實現)void sleep(); // 抽象方法(無實現)// Java 8 默認方法&#…

Linux0.11內存管理:相關代碼

ch13_2 源碼分析 boot/head.s 頁表初始化: 目標:初始化分頁機制,將線性地址空間映射到物理內存(前 16MB),為保護模式下的內存管理做準備。核心流程 分配頁目錄表和頁表的物理內存空間(通過 .…

【Redis】set類型

目錄 1、介紹2、底層實現【1】整數集合【2】哈希表 3、常用指令 1、介紹 Redis的set集合類型是一種無序且元素唯一的數據結構,支持高效的成員判斷、集合運算和隨機訪問。 2、底層實現 【1】整數集合 適用場景 當集合中所有的元素都是整數,且元素數量…

web技術與nginx網站環境部署

一:web基礎 1.域名和DNS 1.1域名的概念 網絡是基于TCP/IP協議進行通信和連接的,每一臺主機都有一個唯一的標識(固定的IP地址),用以區別在網絡上成千上萬個用戶和計算機。網絡在區分所有與之相連的網絡和主機時,均采用一種唯一、通用的地址…

LeetCode【劍指offer】系列(動態規劃篇)

劍指offer10-I.斐波那契數列 題目鏈接 題目:斐波那契數(通常用F(n)表示)形成的序列稱為斐波那契數列 。該數列由 0 和 1 開始,后面的每一項數字都是前面兩項數字的和。也就是: F(0) 0,F(1) 1 F(n) F(…

JVM 內存分配策略

引言 在 Java 虛擬機(JVM)中,內存分配與垃圾回收是影響程序性能的核心機制。內存分配的高效性直接決定了對象創建的速率,而垃圾回收策略則決定了內存的利用率以及系統的穩定性。為了在復雜多變的應用場景中實現高效的內存管理&am…