приветствую..
есть необходимость задать на сервере часовой пояс для региона, географически располагающегося в поясе GMT+11 (дальневосточный регион). когда задаю пояс GMT+11, то мне совершенно не ясно, отчего время UTC вдруг скачет вперед:
[console]user@dd:~$ date
Сбт Окт 25 17:30:26 GMT+11 2014
user@dd:~$ date -u
Вск Окт 26 04:30:29 UTC 2014[/console]
при выставлении часового пояса GMT-11 получаем картину по дате и времени, соответствующую реальности
[console]user@dd:~$ date
Сбт Окт 25 17:37:26 GMT-11 2014
user@dd:~$ date -u
Сбт Окт 25 06:37:29 UTC 2014 [/console]
Не могли бы вы мне объяснить такое поведение на *nix машинах (было опробовано на debian 6 и solaris 10)?
p.s.: хардверные часы выставлены по локальному времени командой hwclock -w
часовые пояса: смещение по отношению к UTC
Поставь аппаратные часы на UTC и программно меняй лишь смещение (часовой пояс).
Ещё неизвестно как ты меняешь.
Из мануала Вайршарк: Показать
Поставь аппаратные часы на UTC и программно меняй лишь смещение (часовой пояс).
Ещё неизвестно как ты меняешь.
возьмем солярис для примера:
[console]
#cat /etc/TIMEZONE |grep TZ
TZ=Etc/GMT+11
#rtc -z GMT
#reboot
...
#echo $TZ
Etc/GMT+11
#date
Sat Oct 25 19:38:52 Etc/GMT 2014
#date -u
Sun Oct 26 06:38:54 Etc/GMT 2014
[/console]
[console]
#cat /etc/TIMEZONE |grep TZ
TZ=Etc/GMT-11
#rtc -z GMT
#reboot
...
#echo $TZ
Etc/GMT-11
#date
Sat Oct 25 19:55:27 Etc/GMT 2014
#date -u
Sat Oct 25 08:55:30 Etc/GMT 2014
[/console]
как видим hardware clock выставлены в GMT, непонятное поведение воспроизводится..
Oleg65, ненормальность в том, что географически зона находится GMT+11, но верное всемирное координированное время система отображает только при выставлении в системе часового пояса GMT-11
А что говорит ls -l /etc/localtime?
Только давай в линуксе, солярис уж слишком специфичен может быть.
когда задаю пояс GMT+11, то мне совершенно не ясно, отчего время UTC вдруг скачет вперед
ошибка здесь:
p.s.: хардверные часы выставлены по локальному времени командой hwclock -w
железные часы надо выставлять по UTC+0
далее каждый пользователь ставит свою timezone
Установка железных часов по localtime требуется для диалбута с Windows(она иначе не умеет).
ЗЫЖ
-u, --utc
--localtime
Indicates that the Hardware Clock is kept in Coordinated Universal Time or local time, respec‐
tively. It is your choice whether to keep your clock in UTC or local time, but nothing in the
clock tells which you've chosen. So this option is how you give that information to hwclock.
If you specify the wrong one of these options (or specify neither and take a wrong default), both
setting and querying of the Hardware Clock will be messed up.
If you specify neither --utc nor --localtime, the default is whichever was specified the last time
hwclock was used to set the clock (i.e. hwclock was successfully run with the --set, --systohc, or
--adjust options), as recorded in the adjtime file. If the adjtime file doesn't exist, the default
is UTC time.
DoggoD, подтверждаю, таймзоны Etc/GMT±* идут в обратном порядке... почему так инфы не нашёл и ни каких разумных объяснений придумать не смог... можно будет попробовать связаться непосредственно с мейнтейнерами timezone-data... если там кто-то из них ещё жив, то могут что-то объяснить..
А пока или пользоваться как-есть, или использовать географические зоны Asia/Vladivostok или Asia/Sahalin.
разве это не потому, что у вас время по localtime, и для получения правильного localtime вам нужно сделать обратную TZ? ИМХО вы просто поставили часы по localtime, при этом не указав --localtime для команды hwclock --hwtosys. Вот оно у вас так криво и работает.таймзоны Etc/GMT±* идут в обратном порядке...
разве это не потому, что у вас время по localtime, и для получения правильного localtime вам нужно сделать обратную TZ?
[console]alexander@goblin /tmp $ TZ=Europe/Moscow date
Сб окт 25 17:19:08 MSK 2014
alexander@goblin /tmp $ TZ=Etc/GMT+4 date
Сб окт 25 09:19:17 GMT+4 2014[/console]
и оно разное не зависимо от локальных часов...
DoggoD, подтверждаю, таймзоны Etc/GMT±* идут в обратном порядке... почему так инфы не нашёл и ни каких разумных объяснений придумать не смог... можно будет попробовать связаться непосредственно с мейнтейнерами timezone-data... если там кто-то из них ещё жив, то могут что-то объяснить..
А пока или пользоваться как-есть, или использовать географические зоны Asia/Vladivostok или Asia/Sahalin.
Fat-Zer ясно, пока юзаю как есть.. пытаюсь избегать Asia/Vladivostok или Asia/Sahalin в связи с тем, что не всегда они соответствуют "закону"..
всем спасибо
Какому закону?
Использование свежего tzdata всегда соответствует текущей обстановке во всех странах.
Какому закону?
Использование свежего tzdata всегда соответствует текущей обстановке во всех странах.
вторая половина вашего поста, Vascom, говорит о том, что вы правильно все поняли про "закон".. в моих руках, как администратора, есть инструмент, при помощи которого я могу управлять системой, и есть механизм, позволяющий задавать жесткое смещение часового пояса по отношению к гринвич мин тайм.. вот этим механизмом я и хочу воспользоваться, всего лишь..
Ну про закон всё-таки вы согласны, что tzdata всегда ему соответствует?
пытаюсь избегать Asia/Vladivostok или Asia/Sahalin в связи с тем, что не всегда они соответствуют "закону"..
не понимаю я этого... при условии своевременного обновления географические таймзоны как раз будут соответствовать «закону» без лишних телодвижений...
по поводу объяснений, оказалось всё распространяется вместе с пакетом: https://www.ietf.org/timezones/data/etcetera
в нескольких словах: «Тут так принято»
Ну про закон всё-таки вы согласны, что tzdata всегда ему соответствует?
Vascom, согласен, при условии, что tzdata up2date ))
[quote="DoggoD"]пытаюсь избегать Asia/Vladivostok или Asia/Sahalin в связи с тем, что не всегда они соответствуют "закону"..
не понимаю я этого... при условии своевременного обновления географические таймзоны как раз будут соответствовать «закону» без лишних телодвижений...
по поводу объяснений, оказалось всё распространяется вместе с пакетом: https://www.ietf.org/timezones/data/etcetera
в нескольких словах: «Тут так принято»[/quote]
при условии обновления -- да, но не всегда реально его (обновление) доставить.. за ссылку спасибо -- впринципе там в полной мере говорят, что
# We use POSIX-style signs in the Zone names and the output abbreviations,
# even though this is the opposite of what many people expect.
# POSIX has positive signs west of Greenwich, but many people expect
# positive signs east of Greenwich. For example, TZ='Etc/GMT+4' uses
# the abbreviation "GMT+4" and corresponds to 4 hours behind UT
# (i.e. west of Greenwich) even though many people would expect it to
# mean 4 hours ahead of UT (i.e. east of Greenwich).
вы, как администратор, должны поставить Единое Время, aka UTC. https://ru.wikipedia.org/wiki/%D0%92%D1%81%D0%B5%D0%BC%D0%B8%D1%80%D0%BD%D0%BE%D0%B5_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5_%D0%B2%D1%80%D0%B5%D0%BC%D1%8Fв моих руках, как администратора, есть инструмент, при помощи которого я могу управлять системой
пользователи будут ставить своё, условное "местное время".
да. "Местное время" везде условное. Как решат. На Руси совмин решал, теперь дума.в нескольких словах: «Тут так принято»