萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

使用 NTP 自動同步 Linux 系統時間的最佳實踐

伺服器長期運行會導致系統時間偏移,影響日誌分析、資料庫同步、定時任務等關鍵業務。NTP(Network Time Protocol)是解決時間同步的標準協定。本文說明如何在 Ubuntu/Debian 系統上,透過 cron.daily 實現每日自動校時,並提供多 NTP 伺服器容錯寫法。

NTP 簡介

NTP(Network Time Protocol)基於 UDP 埠 123,採用階層式時間源架構,可將客戶端時間精確同步至毫秒級。Ubuntu 預設啟動時同步 ntp.ubuntu.com,但伺服器鮮少重啟,需定期主動校時。

實作步驟

  1. 建立每日執行腳本:
sudo nano /etc/cron.daily/timeupdate
  1. 編輯腳本內容(單一伺服器):
#!/bin/bash
ntpdate ntp.ubuntu.com
  1. 賦予執行權限:
sudo chmod 755 /etc/cron.daily/timeupdate

/etc/cron.daily/ 目錄下的腳本會由 anacron 每天自動執行一次,無需額外設定 crontab。

進階:多伺服器容錯

為防單一 NTP 伺服器不可用,可在腳本中列出多個伺服器,ntpdate 會依序嘗試直到成功:

#!/bin/bash
ntpdate ntp.ubuntu.com pool.ntp.org time.stdtime.gov.tw

常用公共 NTP 伺服器:

  • pool.ntp.org(全球池)
  • time.stdtime.gov.tw(台灣標準時間)
  • cn.pool.ntp.org(中國大陸池)
  • time.windows.com、time.apple.com

驗證同步狀態

# 手動測試
sudo ntpdate -q ntp.ubuntu.com

# 查看系統時間
date

# 查看硬體時鐘
hwclock --show

圖示說明

NTP 時間同步示意圖

補充:生產環境建議

  • 重要系統建議部署本地 NTP 伺服器(如 chrony 或 ntpd),減少外部依賴並提升精度。
  • 啟用硬體時鐘同步:hwclock --systohc 將系統時間寫入 BIOS。
  • 監控時間偏移:整合至監控系統(Zabbix/Prometheus),設定告警閾值(如 >1 秒)。
copyright © 萬盛學電腦網 all rights reserved