使用时间 C 函数(自纪元以来的秒数)显示,我当前的 CentOS 6 服务器上的时间与另一台具有正确时间的服务器相比大约慢了 7 个小时。我该如何更正系统时钟?我不认为这是漂移,因为我几周前才设置了这台服务器,但可能是这样。我设置了 ntpd,但它没有帮助,可能是因为时差太大。
答案1
简单的答案是“手动设置日期”,您需要这样做,但为了防止这种情况再次发生,您还应该做更多的事情。
确保系统时区配置处于合理状态。
除非有非常充分的理由(例如软件兼容性问题),否则服务器时钟应始终按照 UTC 时间运行。
如果您决定不使用 UTC,请通过运行 选择一个时区
tzselect
。屏幕上会打印一个时区,您将在下面使用它。例如Europe/Moscow
。否则,请使用UTC
下面的时区。Here is that TZ value again, this time on standard output so that you can use the /usr/bin/tzselect command in shell scripts: Europe/Moscow
按照以下步骤将系统时钟设置为所需的时区:
将 的内容替换
/etc/sysconfig/clock
为以下内容:ZONE="<timezone>" UTC=true
例如:
ZONE="Europe/Moscow" UTC=true
请注意
UTC=true
,即使您不使用 UTC 作为时区,也应在此处设置。这指的是服务器的硬件时钟,无论您选择的系统时区如何,它都应始终为 UTC。/etc/localtime
用所选时区的链接替换该文件:# ln -snf /usr/share/zoneinfo/<timezone> /etc/localtime
例如:
# ln -snf /usr/share/zoneinfo/Europe/Moscow /etc/localtime # ln -snf /usr/share/zoneinfo/UTC /etc/localtime
设置时钟手动到当前时间。
将系统时钟同步到当前时间:
# ntpd -g -q
检查时间是否正确:
# date
将服务器的硬件时钟同步到系统时钟:
# hwclock -wu
重启计算机。重启是必要的,因为必须重启所有系统服务才能获取正确的时间和时区,并且需要测试服务器的硬件时钟(例如,电池故障)。
重启后,检查系统是否显示正确的时间以及 ntpd 是否正常运行。
答案2
重点是,确保所比较的框的时区相同
编辑
如果 TZ 不同
/etc/本地时间
然后记得在比较系统时间时考虑 UTC 偏移量