Linux 擁有兩種時鐘:系統時鐘(核心維護、啟動時由硬體時鐘初始化)與硬體時鐘 (RTC)(主板電池供電、BIOS/UEFI 設定)。正確同步兩者並設定時區,是伺服器日誌分析、定時任務、分散式系統、資料庫一致性的基礎。
RHEL 7+/CentOS 7+/Ubuntu 16.04+/Debian 9+ 皆預設使用 systemd,timedatectl 可統一管理:
# 查看完整狀態 timedatectl status # 列出所有时区 timedatectl list-timezones # 篩選亞洲/台北 timedatectl list-timezones | grep -i taipei # 設定時區(立即生效,寫入 /etc/localtime) timedatectl set-timezone Asia/Taipei # 設定系統時間(格式:YYYY-MM-DD HH:MM:SS) timedatectl set-time "2024-12-25 14:30:00" # 設定硬體時鐘使用 UTC(推薦)或本地時間 timedatectl set-local-rtc 0 # 0=UTC, 1=本地時間(雙開Windows建議1) # 啟用/停用 NTP 自動同步 timedatectl set-ntp true timedatectl set-ntp false
# 顯示當前系統時間 date date "+%Y-%m-%d %H:%M:%S %Z" # 設定系統時間(需 root) date -s "2024-12-25 14:30:00" # 或分開設定日期/時間 date -s "2024-12-25" date -s "14:30:00"
# 顯示硬體時鐘 hwclock --show # 或 hwclock -r # 設定硬體時鐘(系統時間 → 硬體時鐘) hwclock --systohc # 或 hwclock -w # 硬體時鐘 → 系統時間(開機時自動執行) hwclock --hctosys # 或 hwclock -s # 直接設定硬體時鐘 hwclock --set --date="2024-12-25 14:30:00"
timedatectl set-timezone Asia/Taipei
# 備份原本 mv /etc/localtime /etc/localtime.bak # 建立連結到時區檔案 ln -sf /usr/share/zoneinfo/Asia/Taipei /etc/localtime
ZONE="Asia/Taipei" UTC=true ARC=false
修改後執行 tzdata-update 或重啟生效。
dpkg-reconfigure tzdata
# 安裝 dnf install chrony # RHEL/Fedora apt install chrony # Debian/Ubuntu # 設定 /etc/chrony.conf server time.stdtime.gov.tw iburst server time.google.com iburst pool time.cloudflare.com iburst # 啟用並啟動 systemctl enable --now chronyd # 查看同步狀態 chronyc sources -v chronyc tracking
# 設定 /etc/systemd/timesyncd.conf [Time] NTP=time.stdtime.gov.tw time.google.com FallbackNTP=pool.ntp.org # 啟用 timedatectl set-ntp true
Windows 預設 RTC 使用本地時間,Linux 預設使用 UTC。導致雙開時時間跳躍。
方案 A:Linux 改用本地時間(簡單)
timedatectl set-local-rtc 1 --adjust-system-clock
方案 B:Windows 改用 UTC(標準)
Windows 註冊表:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation 新增 DWORD: RealTimeIsUniversal = 1
重啟 Windows 後雙方皆用 UTC,時間一致。
/etc/localtime 指向正確時區檔,重啟 rsyslog/journald。| 任務 | 現代指令 | 傳統指令 |
|---|---|---|
| 看時間 | timedatectl | date |
| 設系統時間 | timedatectl set-time "..." | date -s "..." |
| 看硬體時間 | timedatectl | hwclock --show |
| 系統→硬體 | timedatectl set-local-rtc 0 | hwclock --systohc |
| 硬體→系統 | 自動/重啟 | hwclock --hctosys |
| 設時區 | timedatectl set-timezone Asia/Taipei | ln -sf /usr/share/zoneinfo/Asia/Taipei /etc/localtime |
| 啟用NTP | timedatectl set-ntp true | systemctl enable --now chronyd |
Linux 信號機制深度解析:類型、發送、處理、可靠性與實時擴展
Shell 批量重命名實戰大全:rename、for 迴圈、正則替換 12 類常見場景速查
Linux 循序鎖 : 讀讀/讀寫無阻塞、寫寫互斥、序列號驗證機制與適用限制
Linux VPS 效能調優大全:Swap 擴充、核心參數優化、服務精簡與 IPv6 關閉實戰
CentOS Apache 完整配置詳解:目錄結構、httpd.conf 核心參數、虛擬主目錄遷移、SELinux 權限調整
Nexus 7 平板迎來首個原生 Linux 發行版 Plasma Active
Linux 下 Oracle DBCA 創建數據庫報錯「Xlib: connection refused」解決:X11 轉發與顯示授權