Назад | Перейти на главную страницу

Почему в $ date по-прежнему отображается EST, если / etc / localtime привязан к / usr / share / zoneinfo / GMT?

У меня проблема с установкой даты на моем сервере ...

$ ls -la /etc | grep localtime
lrwxrwxrwx  1 root root  23 Mar 6  12:07 /etc/localtime -> /usr/share/zoneinfo/GMT

Почему-то, хотя время 17:31:06 это GMT, суффикс часового пояса - EST ...

$ date
Tue Mar  6 17:31:06 EST 2012

И аппаратные часы тоже перепутались - 10:32:12 не EST:

$ hwclock --show
Tue 06 Mar 2012 10:32:12 PM EST  -0.000276 seconds

Если я установил hwclock на системное время или местное время, он установит его неправильно:

$ hwclock --localtime
Tue 06 Mar 2012 10:34:22 PM EST  -0.000190 seconds
$ date
Tue Mar  6 17:34:24 EST 2012

Есть идеи, что происходит?

Спасибо

Три простых правила, как не сойти с ума, имея дело со временем:


Во-первых: вы используете Unix (и, предположительно, NTP): Убедитесь, что вы установили BIOS / аппаратные часы вашей системы на UTC..
Абсолютно последнее, что вам нужно, это ваши аппаратные (BIOS) часы, сражающиеся с Unix, чей часовой пояс правильный и когда начинается / заканчивается летнее время. Установка аппаратных часов на UTC значительно упрощает жизнь.


Во-вторых: при изменении общесистемного часового пояса вам иногда нужно выйти и снова войти в систему, чтобы система поняла, что произошло. Обычно я предлагаю перезагрузку - это гарантирует, что каждая часть ОС получит удар по голове и поймет, что произошло.
Вы не хотите, чтобы cron продолжал работать в американском / восточном времени, если вы изменили часовой пояс машины на Гавайи.


В-третьих: если у вашей учетной записи пользователя все еще есть неправильное представление о часовом поясе, вероятно, что-то устанавливает TZ переменная окружения - дважды проверьте свой .profile и файлы оболочки rc.
Unix не предполагает, что каждый пользователь в системе находится в местном часовом поясе, поэтому он позволяет вам переопределить на уровне пользователя (или оболочки). Это очень полезно, если ваша система работает (например) по американскому / восточному времени, и у вас есть пользователи, входящие в систему из Японии - людям нравится, когда их система сообщает время, которое соответствует часам на их стене :)

Проблема заключалась в установке hwclock на системное время и наоборот (с чем я возился) фактически изменил файлы часовых поясов в / usr / share / zoneinfo. Мне пришлось скопировать свежие файлы zoneinfo с другого сервера.

Поэтому все, что я могу сказать, это НЕ играйте с установкой системных часов на аппаратные часы и наоборот (hwclock --hctosys, hwclock --systohc) если вы не знаете, что делаете!