Date

如何強制從網際網路刷新時間和日期設置?

  • May 23, 2014

我在 vmWare 下執行 Ubuntu 12.04 LTS。當我重新啟動掛起的映像時,系統時鐘不會檢測到系統時間已過時。在“時間和日期”設置對話框中,我選擇了“從 Internet 自動設置時間”,但是無論點擊這兩個選項(另一個是“手動設置時間”),系統實際上都“檢查了 Internet”,並且使用正確的時間。有沒有辦法可以強製本地系統(在vmWare下執行)將時間更改為“網際網路時間”?

在虛擬機上安裝 NTP 服務:

sudo apt-get install ntp

這樣,虛擬機(假設它可以訪問 Internet)將從遠端 NTP 伺服器設置時間。

如果已經安裝,請檢查服務是否正在執行:

sudo service ntp status

如果不是,請啟動它:

sudo service ntp start

最後,您可以強制它從伺服器獲取時間

sudo ntpdate 1.debian.pool.ntp.org

從 Internet 設置時間是通過NTP完成的。有兩種方法:

  • ntpdate進行一次查詢以從伺服器檢索目前時間並將電腦的時鐘設置為該時間。
  • ntp 守護程序對一個或多個伺服器進行定期查詢,並且通常以相對於時間伺服器的幾毫秒或更好的精度維護本地時鐘。

NTP拒絕跟隨時間伺服器的突然跳躍:它假設如果本地時鐘和伺服器之間存在較大差異(如果我沒記錯的話最大是20分鐘),這一定是由於網路問題或配置錯誤(例如錯誤的時區)。

當您重新啟動掛起的映像時,系統時鐘應該會檢測到這一點(虛擬處理器接收到定時器中斷)。如果這對您不起作用,您應該進一步調查,因為從 Internet 設置時間不會解決您的問題。您的問題描述聽起來像是 VMware 或 Linux 核心中的錯誤。

當一個掛起的鏡像恢復時,處理器只看到一個時間跳躍,它沒有得到虛擬機被掛起的資訊。所以沒有辦法在恢復時執行程序(例如ntpdate)。(除非有辦法通過 VMware 工具做到這一點,否則我不知道。)

VMware(至少是 ESX)有自己的計時軟體。據我所知,在主機和客戶機上執行時間同步軟體往往會很糟糕,因為每一方都會補償相同的漂移,最終會出現巨大的波動。確保主機保持正確的時間,並且不要在來賓中執行任何時間同步軟體。

引用自:https://unix.stackexchange.com/questions/91641