了解 Linux 中的时间同步

了解 Linux 中的时间同步

/etc/localtime的 Ubuntu 给出了正确的时区 - EAT UTC +3。该date命令给出的时间为 21:44:58 EAT,这大约是正确的时间(我并不关心这个问题的精确度)。

但是,当我这样做时sudo hwclock -r,它显示我的时间为 12:44:31 AM EAT,比正确时间早了大约三个小时。我假设硬件时钟假设 21:44 是 UTC。

运行该命令ntpdate ntp.ubuntu.com对硬件时钟没有影响(它返回 21:44:23)。

当我调用 python 解释器并执行以下时:

import datetime
print datetime.datetime.utcnow()

它给了我 18:44:36,这是正确的 UTC 时间(按照现在)。

那么,是不是说尽管硬件时钟错误,但操作系统仍保持自己的正确时间?由于这似乎“违反手册”,我可以安全地修改硬件时钟而不弄乱其他时间组件吗?

答案1

操作系统知道您的硬件时钟设置为本地时间,而不是 UTC。这是一个可配置的系统参数。使用系统设施进行日期/时区管理的 Linux 工具将生成正确的时间。hwclock -r 猜测您的硬件时钟设置为 UTC,但它猜错了,并增加了三个小时,而实际上不应该增加。

相关内容