1. 程式人生 > >獨門絕技解決 ESXI6.0 時間(時區)顯示不一致

獨門絕技解決 ESXI6.0 時間(時區)顯示不一致

esxi 自動 腳本 時區 設置 ssh 命令

近日由於設置ESXI計劃任務,無意間發現了esxi服務器客服端時間和系統顯示時間不一致的情況,導致了(我為了一致,通過SSH用命令修改了ESXI系統時間)虛擬機時間也不一致,最終導致虛擬服務器系統時間出錯。

技術分享

技術分享

相差大約八小時,可以通過客戶端顯示的時間CST,而ssh服務器用命令顯示為UTC時間。於是我查看了所有的ESXI服務器,發現都是一樣的情況,因為平時不在意(沒有關註這裏的時間)沒有關註這一點,你會發現你的ESXI也是這樣的。當時我想到用命令(esxcli system time set)改為一樣不就行了,可以事與願違,改了後導致虛擬服務器時間也跟著變,導致系統錯誤。

最後查了下資料發現ESXI默認都是UTC時間,並且無法更改,更坑的是官方也是這樣說的,只有4.X下的版本的破解辦法,4.X以後官方也無解法。

技術分享

技術分享


於是自己搗鼓了下,發現ESXI上/etc下有個localtime ,於是聯想到了LINUX下的localtime,能否先設置好,再進行替換,於是進行了嘗試:


先把LINUX服務器時間設置好,再把localtime復制並上傳到ESXI服務器上,一定要上傳到數據存儲目錄,其它目錄ESXI重啟系統都會還原,文件也會丟失。這裏目錄為:/vmfs/volumes/esxi26199


技術分享


然後使用復制命令,覆蓋掉/etc下的localtime文件,cp /vmfs/volumes/esxi26199/localtime /etc/localtime。


技術分享


然後date你會發現奇跡出現了:


技術分享


時間變為了CST了,而且你用客戶端登陸發現時間也是正常的,沒有再變了,查看虛擬機時間也是正常的。


技術分享


但是重啟ESXI後你會發現你所作的操作都是無用的,一切回到從前……

接著說解法吧:

剛剛為什麽要把localtime文件拷到數據存儲目錄下也是有原因的,為了我們能重復使用。

在ESXI中,開機有會自動啟動腳本文件,路徑為:/etc/rc.local.d/local.sh查看屬性你會發現此文件為可讀寫可執行的。

技術分享

添加一條命令在此文件中即可:cp /vmfs/volumes/esxi26199/localtime /etc/localtime

技術分享

這樣即使ESXI主機重啟後,時間也會正確的了(可能會有幾秒延時)

經過測試,c6和c7下的localtime都可以作為原文件進行替換。

本文出自 “在路上……找回丟失的記憶” 博客,謝絕轉載!

獨門絕技解決 ESXI6.0 時間(時區)顯示不一致