Понимание синхронизации времени в Linux

329
krm

Мой /etc/localtimeна моем Ubuntu дает мой правильный часовой пояс - ЕСТЬ, который есть UTC +3. Команда dateдает время как 21:44:58 EAT, что соответствует правильному времени (меня не интересует точность до секунды в этом вопросе).

Тем не менее, когда я это делаю sudo hwclock -r, это дает мне время в 12:44:31 утра, что примерно на три часа раньше правильного времени. Я предполагаю, что аппаратные часы предполагают, что 21:44 в UTC.

Выполнение команды ntpdate ntp.ubuntu.comне влияет на аппаратные часы (возвращает 21:44:23).

Когда я вызываю интерпретатор Python и делаю:

import datetime print datetime.datetime.utcnow() 

Это дает мне 18:44:36, которое является правильным временем UTC (как сейчас).

Так что, хотя аппаратные часы неправильные, операционная система поддерживает правильное время? Поскольку это, кажется, идет вразрез с руководством, могу ли я безопасно изменить аппаратные часы, не перепутав их с другим компонентом времени?

1

1 ответ на вопрос

0
Kyle Jones

The operating system knows that your hardware clock is set to localtime, not UTC. This is a configurable system parameter. Linux tools that use system facilities for date/timezone management will produce the correct time. hwclock -r is guessing that your hardware clock is set to UTC, but it is guessing wrong and adding three hours when it shouldn't.

Похожие вопросы