Переход на летнее время

Ответить
chtito2
Сообщения: 479
Зарегистрирован: Чт апр 17, 2008 5:26 pm

Переход на летнее время

Сообщение chtito2 »

После автоматического перехода на летнее время (FreeBSD 7.1) перестал пускать вечерние пакеты в 19:00: Not allow time. Есть ли какие-то продвижения в этом, чтобы самому не раскапывать? Перевод всего и вся на UTC не предлагать.

P.S.: надеюсь это только сегодня глючит, когда 1 час был украден между 2 и 3 ночи если не ошибаюсь (с 2am сразу прыгнуло на 4am минув 3am).
who | grep -i blonde | date; cd $HOME; unzip; touch; strip; finger; mount; fsck; more; yes; uptime; umount; sleep 69

chtito2
Сообщения: 479
Зарегистрирован: Чт апр 17, 2008 5:26 pm

Сообщение chtito2 »

Кажется нашел решение: если эти строчки в запросах:
UNIX_TIMESTAMP(),
UNIX_TIMESTAMP(DATE_FORMAT(FROM_UNIXTIME(UNIX_TIMESTAMP()), '%Y-%m-%d')),
заменить на
TIME_TO_SEC(FROM_UNIXTIME(UNIX_TIMESTAMP(), '%H:%i:%s')),
0,
то по идее работает правильно т.к. нигде не участвуют временные зоны, а только лишь смещения внутри суток в секундах. Правда менять продакшн боязно ;)
who | grep -i blonde | date; cd $HOME; unzip; touch; strip; finger; mount; fsck; more; yes; uptime; umount; sleep 69

chtito2
Сообщения: 479
Зарегистрирован: Чт апр 17, 2008 5:26 pm

Сообщение chtito2 »

Поменял - заработало правильно :)
who | grep -i blonde | date; cd $HOME; unzip; touch; strip; finger; mount; fsck; more; yes; uptime; umount; sleep 69

Abram
Сообщения: 157
Зарегистрирован: Чт мар 26, 2009 11:31 am
Контактная информация:

Сообщение Abram »

Неплохой монолог :D
~Asmodeus~-у на заметку.

ran
Сообщения: 2298
Зарегистрирован: Вс окт 21, 2007 2:29 pm

Сообщение ran »

chtito2 писал(а):Поменял - заработало правильно :)
а в обратную сторону не пробовал? типа осенью :)
Любой тупик - это тщательно замаскированный выход.

~AsmodeuS~
Site Admin
Сообщения: 5749
Зарегистрирован: Пт янв 28, 2005 3:11 pm
Контактная информация:

Сообщение ~AsmodeuS~ »

так в эту сторону тоно не у кого не должно было ничего случиться

ran
Сообщения: 2298
Зарегистрирован: Вс окт 21, 2007 2:29 pm

Сообщение ran »

~AsmodeuS~ писал(а):так в эту сторону тоно не у кого не должно было ничего случиться
та нет... скажем ночные усеры с пакетом с 21:00 смогли подключиться только в 22:00 - до этого момента - Not allow time... после перехода через границу следующих суток (с воскресенья на понедельник) всё нормализовалось

смена летнее/зимнее время происходит путём смены таймзоны... соответственно как справедливо заметил чтито, вычилять временные интервалы, используя таймзону нельзя
Любой тупик - это тщательно замаскированный выход.

chtito2
Сообщения: 479
Зарегистрирован: Чт апр 17, 2008 5:26 pm

Сообщение chtito2 »

~AsmodeuS~ писал(а):так в эту сторону тоно не у кого не должно было ничего случиться
Святая наивность :) Коротко: в remaining_time() разница между $session_start и $day_begin вернет на 1 час меньше секунд весь день, в который произошел переход на летнее время (получается когда в такой день на настенных часах 19:00 на самом деле с начала суток прошло только 18 часов т.е. 18*3600 секунд, что физически правильно, а локально - нет). Мое изменение просто считает кол-во секунд прошедших с настенных (или наручных :)) 00:00 - простая арифметика, и в 19:00 с начала суток пройдет 19*3600 секунд в какую бы часть планеты Земля сервер ни занесло.
ran писал(а):
chtito2 писал(а):Поменял - заработало правильно :)
а в обратную сторону не пробовал? типа осенью :)
Неа. А мы куда-то торопимся? Не первый год вместе :)
ran писал(а):та нет... скажем ночные усеры с пакетом с 21:00 смогли подключиться только в 22:00 - до этого момента - Not allow time... после перехода через границу следующих суток (с воскресенья на понедельник) всё нормализовалось
С одним примечанием: если используется Радиус и если юзер зашел до смены пояса (у нас в 04:00am) и связь у него ни разу не прервалась до конца интервала, то он выйдет по часам на 1 час позже. На самом деле посидит ровно сколько должен, но поди докажи это шефу :) Конечно куда хуже когда зайти не может в положенное по часам время... А все из-за неправильного использования.
who | grep -i blonde | date; cd $HOME; unzip; touch; strip; finger; mount; fsck; more; yes; uptime; umount; sleep 69

Ответить