纠正CentOS系统时钟


12

使用时间C函数(自大纪元以来的秒数)显示,与另一台具有正确时间的服务器相比,当前CentOS 6服务器上的时间要晚7个小时。我该如何校正系统时钟?我不认为这是随便的,因为我是在几周前才安装此服务器的,但可能是这样。我设置了ntpd,但是它没有帮助,也许是因为时间差太大了。


3
检查命令的输出TZ=UTC date
迈克尔·汉普顿

1
没错,ntpd不会纠正这种时差。为了使ntpd真正起作用,您的系统必须在时间服务器的几分钟之内。
fpmurphy

Sat Nov 30 09:09:21 UTC 2013是我刚得到的输出
user3180

是的,那晚了七个小时。
迈克尔·汉普顿

Answers:


23

简单的答案是“手动设置日期”,您需要这样做,但是要防止这种情况再次发生,您还需要执行更多操作。

  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
    

    通过以下步骤将系统时钟设置为所需的时区:

    1. 将以下内容替换为/etc/sysconfig/clock

      ZONE="<timezone>"
      UTC=true
      

      例如:

      ZONE="Europe/Moscow"
      UTC=true
      

      请注意UTC=true,即使您未将UTC用作时区,也应在此处进行设置。这指的是服务器的硬件时钟,无论您选择的系统时区如何,该时钟应始终为UTC。

    2. /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
      
  2. 手动将时钟设置为当前时间。

    1. 将系统时钟同步到当前时间:

      # ntpd -g -q
      
    2. 检查时间是否正确:

      # date
      
    3. 将服务器的硬件时钟同步到系统时钟:

      # hwclock -wu
      
  3. 重新启动计算机。重新启动是必要的,因为必须重新启动所有系统服务以获取正确的时间和时区,并且需要测试服务器的硬件时钟(例如,电池故障)。

    重新启动后,请检查系统是否显示正确的时间以及ntpd是否正常运行。


迈克尔,非常感谢。如何确保在安装过程中正确无误?我记得选择了正确的时区,但是时间仍然是错误的。
user3180 2013年

在图形安装程序中,有一个复选框,指出“系统时钟使用UTC”。无论选择哪个时区,请始终选中此复选框。
迈克尔·汉普顿

0

关键是,确保时区与您要比较的框相同

编辑

如果TZ不同

/ etc / localtime

然后记住在比较系统时间时要考虑UTC偏移

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.