近日因为设置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均可以做为原文件进行替换。