use*_*180 13 linux synchronization time centos6
使用时间 C 函数(自 Epoch 以来的秒数)显示,与具有正确时间的另一台服务器相比,我当前的 CentOS 6 服务器上的时间大约晚了 7 小时。如何更正系统时钟?我不认为这是漂移,因为我几周前刚刚设置了这个服务器,但它可能是。我设置了 ntpd 但它没有帮助,可能是因为时差太大。
Mic*_*ton 23
简单的答案是“手动设置日期”,您需要这样做,但是为了防止这种情况再次发生,您还应该做更多的事情。
确保系统时区配置处于正常状态。
除非有非常充分的理由不这样做(例如软件兼容性问题),否则服务器时钟应始终在 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
Run Code Online (Sandbox Code Playgroud)
通过以下步骤将系统时钟设置为您想要的时区:
将 的内容替换/etc/sysconfig/clock为以下内容:
ZONE="<timezone>"
UTC=true
Run Code Online (Sandbox Code Playgroud)
例如:
ZONE="Europe/Moscow"
UTC=true
Run Code Online (Sandbox Code Playgroud)
请注意UTC=true,即使您不使用 UTC 作为时区,也应在此处设置。这是指服务器的硬件时钟,无论您选择的系统时区如何,它都应始终为 UTC。
用/etc/localtime指向所选时区的链接替换文件:
# ln -snf /usr/share/zoneinfo/<timezone> /etc/localtime
Run Code Online (Sandbox Code Playgroud)
例如:
# ln -snf /usr/share/zoneinfo/Europe/Moscow /etc/localtime
# ln -snf /usr/share/zoneinfo/UTC /etc/localtime
Run Code Online (Sandbox Code Playgroud)手动将时钟设置为当前时间。
将系统时钟同步到当前时间:
# ntpd -g -q
Run Code Online (Sandbox Code Playgroud)检查时间是否正确:
# date
Run Code Online (Sandbox Code Playgroud)将服务器的硬件时钟与系统时钟同步:
# hwclock -wu
Run Code Online (Sandbox Code Playgroud)重新启动计算机。重新启动是必要的,因为必须重新启动所有系统服务以获取更正的时间和时区,并且需要测试服务器的硬件时钟(例如,电池故障)。
重启后,检查系统显示的时间是否正确,ntpd 是否正常运行。