近日因爲設置ESXI計劃任務,無心間發現了esxi服務器客服端時間和系統顯示時間不一致的狀況,致使了(我爲了一致,經過SSH用命令修改了ESXI系統時間)虛擬機時間也不一致,最終致使虛擬服務器系統時間出錯。服務器
相差大約八小時,能夠經過客戶端顯示的時間CST,而ssh服務器用命令顯示爲UTC時間。因而我查看了全部的ESXI服務器,發現都是同樣的狀況,由於平時不在乎(沒有關注這裏的時間)沒有關注這一點,你會發現你的ESXI也是這樣的。當時我想到用命令(esxcli system time set)改成同樣不就好了,能夠事與願違,改了後致使虛擬服務器時間也跟着變,致使系統錯誤。ssh
最後查了下資料發現ESXI默認都是UTC時間,而且沒法更改,更坑的是官方也是這樣說的,只有4.X下的版本的破解辦法,4.X之後官方也無解法。ide
因而本身搗鼓了下,發現ESXI上/etc下有個localtime ,因而聯想到了LINUX下的localtime,可否先設置好,再進行替換,因而進行了嘗試:測試
先把LINUX服務器時間設置好,再把localtime複製並上傳到ESXI服務器上,必定要上傳到數據存儲目錄,其它目錄ESXI重啓系統都會還原,文件也會丟失。這裏目錄爲:/vmfs/volumes/esxi26199spa
而後使用複製命令,覆蓋掉/etc下的localtime文件,cp /vmfs/volumes/esxi26199/localtime /etc/localtime。3d
而後date你會發現奇蹟出現了:blog
時間變爲了CST了,並且你用客戶端登錄發現時間也是正常的,沒有再變了,查看虛擬機時間也是正常的。get
可是重啓ESXI後你會發現你所做的操做都是無用的,一切回到從前……虛擬機
接着說解法吧:it
剛剛爲何要把localtime文件拷到數據存儲目錄下也是有緣由的,爲了咱們能重複使用。
在ESXI中,開機有會自動啓動腳本文件,路徑爲:/etc/rc.local.d/local.sh查看屬性你會發現此文件爲可讀寫可執行的。
添加一條命令在此文件中便可:cp /vmfs/volumes/esxi26199/localtime /etc/localtime
這樣即便ESXI主機重啓後,時間也會正確的了(可能會有幾秒延時)。
通過測試,c6和c7下的localtime均可以做爲原文件進行替換。