Linux
修正 CentOS 系統時鐘
使用時間 C 函式(自 Epoch 以來的秒數)顯示,與另一台具有正確時間的伺服器相比,我目前的 CentOS 6 伺服器上的時間大約晚了 7 個小時。如何更正系統時鐘?我不認為這是漂移,因為我幾週前剛剛設置了這個伺服器,但它可能是。我設置了 ntpd 但它沒有幫助,可能是因為時差太大。
簡單的答案是“手動設置日期”,您需要這樣做,但為了防止這種情況再次發生,您應該做更多的事情。
- 確保系統時區配置處於正常狀態。
除非有非常充分的理由不這樣做(例如軟體兼容性問題),否則伺服器時鐘應始終按 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
通過以下步驟將系統時鐘設置為您想要的時區:
- 將 的內容替換為
/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 是否正常執行。