服务器时间是7小时关闭(而不是上午10点是凌晨3点,即使日期显示正确的时区). ntpq的输出是:
$ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== xx.xxx.xxx.x.ar xxx.x.xx.xx 2 u 72 1024 177 6.516 2520657 1650156 ntp.xxxx.ac.uk xxx.xxx.xxx.x 2 u 7h 1024 377 14.039 2520655 1347346 xxx.xxx.xxx.xx xxx.xxx.xxx.x 2 u 114 1024 377 5.449 -18.941 2130343 ns1.xxxxxxx.com xxx.x.xx.xx 2 u 148 1024 377 8.050 2520655 1650156
时间固定为:
ntpdate -u 0.europe.pool.ntp.org
然而,几天之后它再次发生了.我怀疑ntpq -p中的第二行,它表示自上次收到数据包以来已经过了7h.但如果这就是原因,那么为什么ntp没有使用其他服务器来同步时间呢?
发生了什么事?你会如何防止这种情况再次发生?
编辑可能有用的另一件事是它是一个VM. VM是否可能处于某种暂停状态?
请注意,已禁用vmware-toolBox-cmd timesync状态.
解决方法
启动时,ntpd会检查主机和远程NTP服务器之间的时差.如果这个差异太大(通常为10-15分钟),它就会拒绝改变任何东西.
当您执行ntpdate时,您可以有效地使用一次性的,更简单的SNTP实现,将您的时间在ntpd本身的毫秒之内.现在,如果你重新启动ntpd服务,你应该有一个同步服务器(用ntpq -p检查).
一个简单的永久解决方案是首先在启动过程的早期使用ntpdate,并在一段时间后启动“真正的”ntp守护进程.为了记录,CentOS 6.x和7.x做同样的事情:如果你同时安装ntpdate和ntp,前者将在启动过程的早期使用,而后者将在后期使用.