Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

Linux 修改系統日期時間完整指南:date 指令、hwclock 硬體時鐘同步、NTP/chrony 網路校時

編輯:關於 Linux

Linux 系統時間不準會導致日誌時間錯亂、定時任務失效、SSL 憑證驗證失敗、資料庫複製延遲。本文系統講解 date 手動修改、hwclock 硬體時鐘同步、NTP/chrony 自動校時 三大體系,並釐清「系統時鐘 vs 硬體時鐘」關鍵概念與虛擬機注意事項。

Linux 時間架構示意圖

核心概念:兩套時鐘

時鐘位置斷電保持管理者查看指令
系統時鐘 (軟體時鐘)核心記憶體否Linux 核心date
硬體時鐘 (RTC, CMOS)主板晶振是 (電池)BIOS/UEFIhwclock
  • 開機:核心讀取 RTC → 初始化系統時鐘
  • 運行:兩者獨立走時,會產生漂移
  • 關機:建議系統時鐘寫回 RTC
  • 虛擬機:通常無法直接存取宿主 RTC,僅依賴網路校時

方法一:date 指令手動修改系統時間

基本語法

date --set='NEW_DATE'
# NEW_DATE 可讀格式: "Sun, 28 Sep 2014 16:21:42" 或 "2014-09-29 16:21:42"

指定格式修改 (精確到分鐘)

date +'%Y%m%d %H%M' --set='20140928 1518'

date 格式化修改

相對時間調整 (極其實用)

date --set='+5 minutes'   # 往前 5 分鐘
date --set='-2 weeks'     # 往後 2 週
date --set='+3 months'    # 往前 3 月
date --set='-3 months +2 weeks -5 minutes'  # 組合調整

date 相對時間調整

方法二:hwclock 同步硬體時鐘 (關鍵步驟!)

系統時鐘 → 硬體時鐘 (寫入 CMOS,關機前必做)

hwclock --systohc
# 或
hwclock -w
  • 修正 RTC 系統漂移 (晶振走快/慢)
  • 下次開機核心讀取到的是已校準的時間

硬體時鐘 → 系統時鐘 (開機後修正,或 RTC 準確時)

hwclock --hctosys

查看兩者差異

hwclock --show && date
# 若差異 > 1 秒,建議同步

虛擬機注意:hwclock 在 VMware/KVM/VirtualBox 通常報錯或無效,請跳過此步,直接用 chrony/ntpd。

方法三:NTP/chrony 網路自動校時 (生產環境標配)

chrony (現代、預設、適合虛擬機、斷網自動修正漂移)

# 安裝
sudo apt/dnf/yum install chrony

# 啟用
sudo systemctl enable --now chronyd

# 配置 /etc/chrony.conf 指定優質 NTP 源
# 推薦中國區源:
server ntp.aliyun.com iburst
server ntp.tencent.com iburst
server cn.pool.ntp.org iburst
server time.cloudflare.com iburst

# 重啟生效
sudo systemctl restart chronyd

# 查看同步狀態
chronyc sources -v
chronyc tracking

chronyc sources 輸出

ntpdate (舊版、單次同步、不適合守護進程)

sudo apt/dnf/yum install ntpdate
sudo ntpdate -u cn.pool.ntp.org
hwclock --systohc  # 同步到硬體時鐘 (實體機)

ntpd (傳統 NTP 守護進程,逐漸被 chrony 取代)

sudo apt/dnf/yum install ntp
sudo systemctl enable --now ntpd
# 配置 /etc/ntp.conf

生產環境最佳實踐清單

  1. 實體機:chrony + hwclock --systohc 定時任務 (每日/關機腳本)
  2. 虛擬機:chrony (禁用 host-time 同步,僅走網路 NTP)
  3. 容器:宿主機跑 chrony,容器掛載 /etc/localtime、/usr/share/zoneinfo,或運行 sidecar chrony
  4. 叢集:所有節點指向同一組內部 NTP 伺服器 (自建 GPS/原子鐘源或雲廠商源)
  5. 時區統一:全環境強制 Asia/Shanghai (或 UTC),避免夏令時混淆
  6. 監控告警:Prometheus node_timex_offset_seconds > 1s 告警

快速驗證腳本

#!/bin/bash
echo "=== 系統時間 ==="; date -R
echo "=== 硬體時間 ==="; hwclock --show 2>/dev/null || echo "VM/無權限"
echo "=== 時區 ==="; timedatectl | grep "Time zone"
echo "=== NTP 狀態 ==="; chronyc tracking 2>/dev/null | grep -E "^(Reference ID|Stratum|System time)" || ntpq -p 2>/dev/null | head -5

掌握 date 手改、hwclock 雙向同步、chrony 自動校時 三板斧,並理解「雙時鐘」機制,Linux 系統時間將永遠精準可靠,為日誌分析、分散式協作、合規審計奠定堅實時間基石。

Copyright © Windows教程網 All Rights Reserved