Orange的運維學習日記--16.Linux時間管理

Orange的運維學習日記–16. Linux時間管理

文章目錄

  • Orange的運維學習日記--16. Linux時間管理
    • 系統與硬件時鐘
      • 時鐘類型對比
      • 查看內核支持的時鐘源
    • 本地時間調整
      • 使用 `date` 查看與設置
      • 一次性同步:`ntpdate`
      • 同步到硬件時鐘:`hwclock`
    • 基于 systemd 的 `timedatectl`
    • 交互式選擇時區:`tzselect`
    • NTP 服務對比
    • 自動對時配置
      • Windows 平臺對時
      • macOS 平臺對時
    • Linux 上的 `chronyd` 服務
    • 時間服務器部署
      • 部署拓撲示例(ASCII 圖示)
      • 服務端配置
      • 客戶端配置
    • 常見故障排查
    • 時間監控與報警

系統與硬件時鐘

系統時間由 Linux 內核維護,常見時鐘源(clocksource)包括 TSC、HPET、ACPI PM Timer 等。
硬件時鐘(RTC)通過主板電池供電,系統關機后依然運行,用于引導時提供初始時間。

時鐘類型對比

時鐘名稱作用是否可調用途
CLOCK_REALTIME墻鐘時間,可被用戶/管理員修改可調節date、文件系統時間戳、網絡協議
CLOCK_MONOTONIC單調遞增時間,不受系統時鐘修改影響不可調節性能分析、測量時間間隔
CLOCK_BOOTTIME含睡眠時間的單調時鐘不可調節包括掛起/休眠時間的精準事件計時

查看內核支持的時鐘源

cat /sys/devices/system/clocksource/clocksource0/available_clocksource
cat /sys/devices/system/clocksource/clocksource0/current_clocksource

本地時間調整

使用 date 查看與設置

# 查看人類可讀格式(英文環境避免本地化亂碼)
LANG=en_US.UTF-8 date# 查看 Epoch 秒
date +%s# 設置系統時間
date -s '2022-11-11 11:30:59'

提示:date 的字符串解析對本地化依賴較大,推薦使用 YYYY-MM-DD hh:mm:ss 這種標準格式。

一次性同步:ntpdate

# 安裝(以 Debian/Ubuntu 為例)
apt-get install ntpdate# 立即與公有 NTP 服務器同步
ntpdate -u time.google.com

同步到硬件時鐘:hwclock

# 讀取 RTC 時間
hwclock -r# 將系統時間寫入 RTC(持久)
hwclock -w# 將 RTC 時間寫入系統
hwclock -s
  • hwclock -w 建議在人工設置完系統時間后執行,確保下次啟動也能讀取到準確時間。

基于 systemd 的 timedatectl

# 顯示本地時間、UTC、RTC、NTP 狀態及時區
timedatectl# 關閉/開啟 NTP 自動對時
timedatectl set-ntp no
timedatectl set-ntp yes# 手動設置系統時間
timedatectl set-time '2022-11-10 11:42:54'# 設置或切換時區
timedatectl set-timezone Asia/Shanghai

提示:如果 NTP 自動對時開啟,手動設置時間會被立即覆蓋。


交互式選擇時區:tzselect

tzselect

按提示選擇大區、國家和城市,得到類似 Asia/Urumqi 的 TZ 值。
可將該值賦給環境變量:

echo 'export TZ=Asia/Urumqi' >> ~/.profile
source ~/.profile

NTP 服務對比

特性ntpdchronydsystemd-timesyncd
資源占用較高適中最低
適應網絡抖動較差較好較差
虛擬化/移動設備支持較弱支持良好支持有限
功能豐富度豐富豐富基本

選擇時可根據業務需求、環境網絡質量及資源消耗進行權衡。


自動對時配置

Windows 平臺對時

  1. 打開“控制面板 → 日期和時間”
  2. 切換到“Internet 時間”選項卡
  3. 勾選“與 Internet 時間服務器同步”,填寫常用 NTP 地址(如 time.windows.com
  4. 點擊“立即更新”并應用

在這里插入圖片描述

macOS 平臺對時

  1. 打開“系統設置 → 日期與時間”
  2. 勾選“自動設置日期和時間”
  3. 選擇或添加喜歡的 Apple NTP 服務器

Linux 上的 chronyd 服務

  1. 安裝 chrony(以 Red Hat 系發行版為例)

    yum install chrony
    
  2. 編輯

    /etc/chrony.conf
    

    ,添加或調整對時服務器

    server ntp.aliyun.com iburst
    pool 2.rocky.pool.ntp.org iburst
    
  3. 啟用并啟動服務

    systemctl enable --now chronyd
    
  4. 查看對時源狀態

    chronyc sources -v
    chronyc tracking
    

輸出示例:

^* 203.107.6.88   2   6    77     9  -1.84ms ±  23ms
  • 前綴含義:^* 最佳源;Reach、Offset、StdDev 用于評估穩定性。

時間服務器部署

部署拓撲示例(ASCII 圖示)

Internet NTP Pool↓┌───┴────┐│  Chrony │  局域網時間服務器(10.1.8.10)└───┬────┘↓
┌──────┴───────┐
│  客戶端群組   │  (10.1.8.0/24)
└──────────────┘

服務端配置

vim /etc/chrony.conf# 監聽本地接口
bindaddress 10.1.8.10# 開放子網范圍
allow 10.1.8.0/24systemctl restart chronyd

客戶端配置

vim /etc/chrony.conf# 指向局域網內部時間服務器
server 10.1.8.10 iburstsystemctl restart chronyd

配置防火墻,確保 UDP/123 端口雙向連通。


常見故障排查

  • chrony 無法同步
    • 檢查時間服務器地址是否正確
    • 查看 journalctl -u chronyd 日志
    • 確認防火墻、SELinux 策略放行 UDP/123
  • 系統時間持續漂移
    • 查看硬件時鐘電池電量及 /etc/adjtime 是否存在寫入錯誤
    • 使用 chronyc tracking 查看 Root Delay、Root Dispersion 是否超閾值
  • 時區切換后時間不生效
    • 確認 /etc/localtime 已鏈接到正確的 zoneinfo 文件
    • 重啟相關服務或重新登錄

時間監控與報警

  • ntpstat:快速報告同步狀態
  • chronyc sourcestats:統計每個源的歷史偏差
  • 將關鍵指標(Offset、Drift)接入 Prometheus + Grafana,設置閾值報警
  • 定期對硬件時鐘和系統時間做交叉檢查,釘住 drift 趨勢

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

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

相關文章

Git 與 GitHub 的對比與使用指南

Git 與 GitHub 的對比與使用指南 在軟件開發中,Git 和 GitHub 是兩個密切相關但本質不同的工具。下面我將逐步解釋它們的定義、區別、核心概念以及如何協同使用,確保內容真實可靠,基于廣泛的技術實踐。 1. 什么是 Git? Git 是一個…

20250726-4-Kubernetes 網絡-Service DNS名稱解析_筆記

一、Service DNS名稱 ?1. 例題:通信需求 通信場景:項目A中的Pod需要與項目B中的Pod進行通信,直接使用Pod IP不可行,因為Pod IP會隨著Pod生命周期變化。 解決方案:通過Service提供的穩定IP地址進行通信,不受Pod重建、擴容/縮容等操作影響。 2. CoreDNS介紹 ?? 基本功能…

vscode 登錄ssh記住密碼直接登錄設置

第一種情況在系統已經生成密鑰對的情況下:點擊這里的設置第二步:第三步:沒有填寫的給填寫一下第四步驟:保存后進入選擇這個點開第五步:去Linux終端下輸入這個命令就OK了echo "ssh-rsa內容" >> ~/.ssh/…

Nginx 動靜分離配置(詳細版)

本文介紹了Nginx 動靜分離相關配置,主要包括了配置文件創建、配置示例、配置原理解析以及重新啟用配置文件等等 本文目錄1. 創建 Nginx 配置文件2. 配置示例3. 配置原理解析4. 啟用配置文件并重新加載 Nginx1. 創建 Nginx 配置文件 在 /etc/nginx/sites-available …

C# CAN通信上位機系統設計與實現

C# CAN通信上位機系統設計與實現 C# CAN通信上位機程序,支持多種CAN適配器,提供數據收發、協議解析、數據可視化等功能。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; usi…

Ubuntu20.04子系統

常用 # 導出分發版到 E盤 wsl --export Ubuntu-20.04 E:\wsl-ubuntu20.04.tar # 注銷原有分發版 wsl --unregister Ubuntu-20.04 # 導入到 E盤的新路徑(例如 E:\WSL\Ubuntu-20.04) wsl --import Ubuntu-20.04 E:\WSL\Ubuntu-20.04 E:\wsl-ubuntu20.04.t…

【設計模式】狀態模式 (狀態對象(Objects for States))

狀態模式(State Pattern)詳解一、狀態模式簡介 狀態模式(State Pattern) 是一種 行為型設計模式(對象行為型模式),它允許一個對象在其內部狀態改變時改變其行為。換句話說,對象看起來好像修改了它的類。 你…

工業前端組件庫重構心法:如何讓開發效率提升60%的交互模塊設計邏輯

工業前端組件庫重構心法:如何讓開發效率提升60%的交互模塊設計邏輯內容摘要在工業項目開發中,前端組件庫是提升開發效率的關鍵。然而,許多團隊的組件庫存在設計不合理、維護困難等問題,導致開發效率低下。如果能夠重構組件庫&…

leetcode 74. 搜索二維矩陣

二分查找經典題目;根據矩陣的特點,不需要把矩陣拉成一維,二維轉成一維映射關系為a[i]matrix[?i//n?][i%n];然后開始二分查找,一直二分的收縮區間;class Solution:def searchMatrix(self, matrix: List[Li…

26考研英語詞匯的邏輯筆記(Unit31-43)

行為UNIT 31詞匯數量:274 詞群數量:16 詞群邏輯:行為舉止 | 行為標準與原則 給予、收回 | 接受、允許、讓步、拒絕 促進、鼓勵 | 支持、幫助、資助 破壞相關 | 錯誤、改正 阻礙、打擾相關 | 禁止、阻止、限制 值得、有利、不利相關 | 有意、故…

Lua(數據庫訪問)

Lua 數據庫訪問方法Lua 本身不提供內置的數據庫訪問功能,但可以通過第三方庫實現與多種數據庫的交互。以下是常見的 Lua 數據庫訪問方法:使用 LuaSQL 庫LuaSQL 是一個輕量級數據庫訪問庫,支持多種數據庫后端(MySQL、PostgreSQL、S…

在 Dell PowerEdge T440 上通過 iDRAC9 安裝 Proxmox VE

在 Dell PowerEdge T440 上通過 iDRAC9 安裝 Proxmox VE 文章目錄 在 Dell PowerEdge T440 上通過 iDRAC9 安裝 Proxmox VE 1. 前置要求 1.1. 硬件信息(例) 1.2. 準備工作 2. 安裝步驟 2.1. 登錄 iDRAC9 2.2. 啟動虛擬控制臺 2.3. 掛載 Proxmox VE ISO 2.4. 設置服務器從虛擬…

window下MySQL安裝(三)卸載mysql

window下MySQL安裝&#xff08;三&#xff09;卸載mysql 卸載mysql數據庫&#xff0c;停止服務&#xff0c;備份文件&#xff0c;刪除mysql文件。結束。 停止mysql服務 以管理員身份打開命令提示符或 PowerShell&#xff1a; net stop <服務名稱> 示例&#xff1a;net st…

Elasticsearch 深度分頁問題與 `search_after` 解決方案

1. 引言 主題&#xff1a;介紹 Elasticsearch 深度分頁問題的背景&#xff0c;強調其在處理大規模數據集時的性能瓶頸。核心問題&#xff1a;傳統 from/size 分頁方式在深層分頁&#xff08;例如第500頁&#xff09;時&#xff0c;因需要加載和丟棄大量文檔&#xff0c;導致內存…

Spring Boot 2整合MyBatis Plus詳細指南

1. 環境準備Spring Boot版本&#xff1a;2.x&#xff08;推薦2.7.x&#xff09;MyBatis Plus版本&#xff1a;3.5.x&#xff08;兼容Spring Boot 2&#xff09;數據庫&#xff1a;MySQL 8.0&#xff08;其他數據庫需調整驅動&#xff09;2. 創建項目并添加依賴在pom.xml中添加核…

Docker鏡像導入解析:docker import vs docker load

本文通過Busybox鏡像的實戰演示&#xff0c;深入剖析兩個易混淆命令的技術原理與適用場景一、核心區別速覽特性docker importdocker load輸入來源容器文件系統快照(docker export輸出)完整鏡像歸檔(docker save輸出)保留信息僅文件內容完整鏡像(層/歷史/配置/標簽)生成鏡像結構…

Android 解決鍵盤遮擋輸入框

本文目錄 點擊直達Android 解決鍵盤遮擋輸入框代碼實現使用注意最后我還有一句話要說梧桐葉上三更雨&#xff0c;葉葉聲聲是別離。Android 解決鍵盤遮擋輸入框 在安卓中通常可以通過添加android:windowSoftInputMode"adjustResize|stateHidden"的方式來讓鍵盤頂起布…

熱門JavaScript庫“is“等軟件包遭npm供應鏈攻擊植入后門

輕量級 JavaScript 實用工具庫 "is" 是 NPM 平臺上的熱門項目&#xff0c;每周下載量超過 220 萬次。然而在 2025 年 7 月 19 日&#xff0c;該庫開發者遭遇釣魚攻擊導致賬戶憑證泄露&#xff0c;攻擊者借此發布了包含遠程代碼執行后門的惡意版本。釣魚攻擊入侵開發者…

如何實現緩存音頻功能(App端詳解)

本方案提供了符合平臺規范的音頻緩存實現&#xff0c;通過分層設計確保功能可靠性&#xff0c;同時預留擴展點支持未來優化需求。&#x1f4e6; 音頻緩存與播放流程說明 項目目標 實現App端音頻資源的自動緩存與播放&#xff1a; 獲取遠程音頻URL下載文件至本地_downloads/目錄…

從零到一:Django圖書管理系統完整開發實戰指南

作者&#xff1a;笙囧同學 身份&#xff1a;中科院計算機大模型方向碩士 | 全棧開發愛好者 座右銘&#xff1a;偷懶是人生進步的階梯 聯系方式&#xff1a;3251736703qq.com 可接課設&#xff0c;論文&#xff0c;專利輔導 全平臺賬號&#xff1a;笙囧同學 &#x1f4d6; 前言 …