Понимание синхронизации времени в Linux
Мой /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 ответ
Операционная система знает, что ваши аппаратные часы настроены на местное время, а не на UTC. Это настраиваемый системный параметр. Инструменты Linux, которые используют системные средства для управления датой / часовым поясом, будут показывать правильное время. hwclock -r предполагает, что ваши аппаратные часы установлены в UTC, но он ошибается и добавляет три часа, когда это не должно.