Linux

修正 CentOS 系統時鐘

  • March 13, 2018

使用時間 C 函式(自 Epoch 以來的秒數)顯示,與另一台具有正確時間的伺服器相比,我目前的 CentOS 6 伺服器上的時間大約晚了 7 個小時。如何更正系統時鐘?我不認為這是漂移,因為我幾週前剛剛設置了這個伺服器,但它可能是。我設置了 ntpd 但它沒有幫助,可能是因為時差太大。

簡單的答案是“手動設置日期”,您需要這樣做,但為了防止這種情況再次發生,您應該做更多的事情。

  1. 確保系統時區配置處於正常狀態。

除非有非常充分的理由不這樣做(例如軟體兼容性問題),否則伺服器時鐘應始終按 UTC 時間執行。

如果您決定不使用 UTC,請通過執行 選擇時區tzselect。時區將列印在螢幕上,您將在下面使用。一個例子是Europe/Moscow。否則UTC用作下面的時區。

Here is that TZ value again, this time on standard output so that you
can use the /usr/bin/tzselect command in shell scripts:
Europe/Moscow

通過以下步驟將系統時鐘設置為您想要的時區:

  1. 將 的內容替換為/etc/sysconfig/clock以下內容:
ZONE="<timezone>"
UTC=true

如:
NE="Europe/Moscow"
C=true

注意`UTC=true`,即使您不使用 UTC 作為您的時區,也應在此處設置。這是指伺服器的硬體時鐘,無論您選擇的系統時區如何,它都應始終為 UTC。
 將`/etc/localtime`文件替換為所選時區的連結:
ln -snf /usr/share/zoneinfo/<timezone> /etc/localtime

如:
ln -snf /usr/share/zoneinfo/Europe/Moscow /etc/localtime
ln -snf /usr/share/zoneinfo/UTC /etc/localtime
2. *手動*將時鐘設置為目前時間。


 將系統時鐘同步到目前時間:
ntpd -g -q
 檢查時間是否正確:
date
 將伺服器的硬體時鐘同步到系統時鐘:
hwclock -wu
3. 重新啟動電腦。重新啟動是必要的,因為必須重新啟動所有系統服務以獲取更正的時間和時區,並且需要測試伺服器的硬體時鐘(例如電池故障)。


重新啟動後,檢查系統是否顯示正確的時間以及 ntpd 是否正常執行。

引用自:https://serverfault.com/questions/558354