networks Posted September 27, 2011 Всем привет :) Кто-нибудь уже озаботился проблемой перехода на зимнее время (а точнее его отсутствия) в этом году? Мне кажется, машинки с FreeBSD как обычно перейдут на него в последнее воскресенье октября, а Россия то не переходит, вроде как. Погуглил на тему freebsd daylight savings time 2011, ничего особо вразумительного нет. Придется что-то вручную ковырять, или может уже патчи есть какие-нибудь? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
vlad11 Posted September 27, 2011 Всем привет :) Кто-нибудь уже озаботился проблемой перехода на зимнее время (а точнее его отсутствия) в этом году? Мне кажется, машинки с FreeBSD как обычно перейдут на него в последнее воскресенье октября, а Россия то не переходит, вроде как. Погуглил на тему freebsd daylight savings time 2011, ничего особо вразумительного нет. Придется что-то вручную ковырять, или может уже патчи есть какие-нибудь? Патчи уже в ствол добавили. Для России, Украины и Белоруссии. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
st_re Posted September 27, 2011 Если не обновлять систему до стабла(каретнта) то: cd /usr/ports/misc/zoneinfo/ make all install clean и далее, если /etc/localtime - симлинк, то все работает сразу, если нет, то нужно озаботиться перезаписыванием /etc/localtime из нужного. (ну как угодно, хоть сисинсталл, хоть cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime указав в качестве источника свою зону) если /etc/localtime симлинк и версия ниже 8 (или сорцы ниже конца августа) то после installworld переустановить misc/zoneinfo для проверки сейчас по команде date должно вываливаться название временной зоны зимнее (для Москвы MSK а не MSD) ну и верное время. для не фри или искать обновление, если нет то взять ftp://elsie.nci.nih.gov/pub/tzdata2011k.tar.gz (имя файла меняется при изменениях временных зон, нужно посмотреть текущее название) $ wget ftp://elsie.nci.nih.gov/pub/tzdata2011k.tar.gz $ tar -xzf tzdata2011k.tar.gz $ zic -d ./zoneinfo africa antarctica asia \ etcetera europe factory northamerica \ southamerica systemv $ cd zoneinfo $ cp -r * /usr/share/zoneinfo/ ну и далее тоже самое с /etc/localtime, что описано во втором абзаце. для фри второй вариант тоже прокатит, если порты лень вытягивать свежие к примеру, в принципе порт именно это и делает. А в /usr/src/share/zoneinfo лежит именно этот файлик распакованный разработчиками, когда они удосужились оюбновить это место + мейкфайл. для винды равной большей xp-2003 в конце августа M$ родила соотв исправление. испроавление встает даже на леченную машину, единственная сложность его скачать. если не подходит (ну к примеру винда 2000 или ниже) то на M$ сайте раздают tzedit, им править руками. не забыть после правки сменить зону куданить, применить, потом на нужную и снова применить. кстати судя по $ zdump /usr/share/zoneinfo/Europe/Kiev /usr/share/zoneinfo/Europe/Kiev Tue Sep 27 23:05:40 2011 EEST $ zdump /usr/share/zoneinfo/Europe/Minsk /usr/share/zoneinfo/Europe/Minsk Tue Sep 27 23:06:04 2011 EEST в сегодняшнем стабле про новые веяния на Укрине и в Белоруссии пока не в курсе. ДА и в /usr/ports/misc/zoneinfo/ файлик не последний тянется.. Россия там везде поправлена. А для остальных пока второй вариант скорее всего. там отдают FET для обоих... ну или ждать пока включат куда надо. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
networks Posted September 28, 2011 Мне почему-то кажется, что придется что-то поправлять в postgres'е тоже, т.к. он использует свои файлики (в своей директории) с наименованием зон, и там скорее всего старая инфа (зона MSK будет считаться +3, а не +4 к UTC) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
st_re Posted September 28, 2011 все вышесказанное относится к операционной системе самой по себе и ко всем программам пользующим ее средства для вычисления времени. Если кто то в программе нахардкодил +3 и даты сдвига, то ой, программу придется править. например для mySQL есть такая вот ссылка http://dev.mysql.com/doc/refman/5.1/en/time-zone-upgrades.html И если оно пользуется то mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -p -u root mysql должно поправить данные по постгресу поискать наверное тоже можно. не мы первые не мы последние, кто временные зоны меняет. Вон, они за год до буквы k наплодили изменений. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
tartila Posted September 28, 2011 А кто уже строчки нарисовал для DLink (3526)? Mikrotik, конечно, в пролете наверное без обновления. И для Cisco? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
st_re Posted September 28, 2011 А че там в длинке ? disable сказать в месте про dailing save и цифирьку на 1 увеличить в другом сложно ?... в кошке тоже самое. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
f13 Posted September 28, 2011 А кто уже строчки нарисовал для DLink (3526)? Mikrotik, конечно, в пролете наверное без обновления. И для Cisco? а оно сильно надо? у нас уже второй раз за год меняют, сцуки, поэтому ещё с первой смены всё железо по UTC живёт ну а нарисовать сейчас совсем просто, переходов нет, чисто смещение Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
No_name Posted September 28, 2011 Как не переходить на зимнее время на серверах Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
f13 Posted September 29, 2011 Как не переходить на зимнее время на серверах плохой совет, как уже сказали выше нужно ставить свою зону из tzdata 2011h или свежее # ln -sf /usr/share/zoneinfo/Etc/GMT-4 /etc/localtime это тоже плохо, можно нарваться на красивые грабли если /usr отдельный раздел Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
morom Posted September 30, 2011 Я для FreeBSD сделал как-то так #!/bin/sh FREEBSDVER=`uname -r | awk -F. '{print($1)}'` echo "*default host=cvsup2.ru.freebsd.org" > /etc/supfile echo "*default base=/var/db" >> /etc/supfile echo "*default prefix=/usr" >> /etc/supfile echo "*default release=cvs tag=RELENG_${FREEBSDVER}" >> /etc/supfile echo "*default delete use-rel-suffix" >> /etc/supfile echo "*default compress" >> /etc/supfile echo "src-share" >> /etc/supfile csup -L 2 /etc/supfile CURDIR=`pwd` cd /usr/src/share/zoneinfo zic europe cd $CURDIR tzsetup Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
st_re Posted September 30, 2011 и для версий ниже 7 не сработает. Там только безопасность правят. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
networks Posted September 30, 2011 Спасибо st_re за подробные пояснения, обновился нормально :) Для постгреса если кому надо - нужно скопировать зоны так же как в /usr/share/zoneinfo, но в каталог с зонами там, где установлен постгрес (допустим /usr/local/pgsql/share/timezone), после чего перезапустить постгрес - и все буит работать. Не знаю, может и без этого работать будет (только после обновления зон в системе), но я на всякий случай и в постгресе обновил. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
morom Posted October 3, 2011 (edited) и для версий ниже 7 не сработает. Там только безопасность правят. $uname -r 6.2-STABLE $grep -A 4 -B 1 "Medvedev" /usr/src/share/zoneinfo/europe # From Alexander Krivenyshev (2011-06-14): # According to Kremlin press service, Russian President Dmitry Medvedev # signed a federal law "On calculation of time" on June 9, 2011. # According to the law Russia is abolishing daylight saving time. # # Medvedev signed a law "On the Calculation of Time" (in russian): # <a href="http://bmockbe.ru/events/?ID=7583"> # http://bmockbe.ru/events/?ID=7583 # </a> # # Medvedev signed a law on the calculation of the time (in russian): # <a href="http://www.regnum.ru/news/polit/1413906.html"> # http://www.regnum.ru/news/polit/1413906.html # </a> У меня сорцы таймзоны обновились. На всякий случай сравнил с /usr/src/share/zoneinfo/europe из 8.2-RELEASE. diff сказал, что отличий нет. Что я сделал не так? Edited October 3, 2011 by morom Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
st_re Posted October 3, 2011 Ааа.. значит кто-то убедил, что это влияет на безопасность ;) Кому-то респект. в прошлом моем сообщении сменить 7 на 6 ;) # ls -la /usr/local/cvsup5/src/share/zoneinfo/ total 508 drwxr-xr-x 2 root wheel 512 3 окт 16:47 . drwxr-xr-x 25 root wheel 512 3 окт 16:47 .. -rw-r--r-- 1 root wheel 1295 25 мар 2008 Makefile -rw-r--r-- 1 root wheel 21462 9 ноя 2001 Theory -rw-r--r-- 1 root wheel 23455 18 окт 2007 africa -rw-r--r-- 1 root wheel 12490 2 сен 2007 antarctica -rw-r--r-- 1 root wheel 79579 25 мар 2008 asia -rw-r--r-- 1 root wheel 57690 2 сен 2007 australasia -rw-r--r-- 1 root wheel 3896 25 мар 2008 backward -rw-r--r-- 1 root wheel 2920 12 май 2006 etcetera -rw-r--r-- 1 root wheel 108249 6 янв 2008 europe -rw-r--r-- 1 root wheel 303 12 май 2006 factory -rw-r--r-- 1 root wheel 2737 25 мар 2008 leapseconds -rw-r--r-- 1 root wheel 109624 25 мар 2008 northamerica -rw-r--r-- 1 root wheel 53727 25 мар 2008 southamerica -rw-r--r-- 1 root wheel 1464 12 май 2006 systemv -rwxr-xr-x 1 root wheel 707 13 окт 2006 yearistype.sh -rw-r--r-- 1 root wheel 18654 25 мар 2008 zone.tab У меня еще где то и 4.х стоит, кажется ;)... вообще /usr/src/share/zoneinfo можно хоть от 9 на 4 поставить. в /usr/ports/misc/zoneinfo/ воткнули самый свежий tzdata2011k Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
s.lobanov Posted October 6, 2011 Что-то я не могу вкурить откуда postgres берёт timezon'ы. На сервере с debian6 полностью обновлённом ситуация такая: postgres=# SELECT '2011-09-01'::timestamp with time zone, '2011-01-01'::timestamp with time zone, '2011-12-01'::timestamp with time zone ; timestamptz | timestamptz | timestamptz ------------------------+------------------------+------------------------ 2011-09-01 00:00:00+04 | 2011-01-01 00:00:00+03 | 2011-12-01 00:00:00+04 Тут всё правильно. На сервере, где половина пересобрано вручную и ничего из репы не обновишь(обсуждать причины этого безобразия - не для этого топика) такой результат: postgres=# SELECT '2011-09-01'::timestamp with time zone, '2011-01-01'::timestamp with time zone, '2011-12-01'::timestamp with time zone ; timestamptz | timestamptz | timestamptz ------------------------+------------------------+------------------------ 2011-09-01 00:00:00+04 | 2011-01-01 00:00:00+03 | 2011-12-01 00:00:00+03 Что вполне ожидаемо. Далее вопрос в том, как вручную научить postgres правильным зонам, если нельзя тупо всё проапдейтить из репы? Т.е. где postgres хранит реально используемые правила для зон? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
networks Posted October 6, 2011 (edited) Я копировал скомпиленные zic'ом таймзоны в /usr/local/pgsql/share/timezone, потом перезапускал постгрес - и все заводилось. Edited October 6, 2011 by networks Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
s.lobanov Posted October 6, 2011 Нашёл только такие файлы: /usr/share/postgresql/timezonesets /usr/share/postgresql/timezonesets/India /usr/share/postgresql/timezonesets/Europe.txt /usr/share/postgresql/timezonesets/Australia /usr/share/postgresql/timezonesets/Default /usr/share/postgresql/timezonesets/Pacific.txt /usr/share/postgresql/timezonesets/America.txt /usr/share/postgresql/timezonesets/Atlantic.txt /usr/share/postgresql/timezonesets/Asia.txt /usr/share/postgresql/timezonesets/Africa.txt /usr/share/postgresql/timezonesets/Indian.txt /usr/share/postgresql/timezonesets/Antarctica.txt /usr/share/postgresql/timezonesets/Australia.txt /usr/share/postgresql/timezonesets/Etc.txt Но в них написано: This file is NOT loaded by the PostgreSQL database. It just serves as a template for timezones you could need. Что-то я пока не понимаю откуда он берёт таймзоны :( Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
s.lobanov Posted October 6, 2011 Похоже до меня дошло... Некоторые linux-вендоры компилят postgres с опцией --with-system-tzdata=PATH_TO_SYSTEM_TIMEZONES, поэтому я не могу найти постгресовские зоны. Там где postgres скомпилен вручную, таймзоны есть в посгресовской папке... Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
vurd Posted October 12, 2011 У меня с FTP не брались таймзоны. У кого такое же чудо, то есть мирроры: http://dimdim.org.ua/wp-content/uploads/2011/10/tzdata2011k.tar.gz ftp://elsie.nci.nih.gov/pub/tzdata2011k.tar.gz http://narod.ru/disk/27615156001/tzdata2011k.tar.gz.html http://people.freebsd.org/~edwin/tzdata2011k.tar.gz Взятые из еще одной статьи по FreeBSD Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
s.lobanov Posted October 12, 2011 исходник tzdata2011k можно брать из репозитория debian Кто-нибудь проделывал танцы с бубномтаймзонами с mysql4 и mysql5. можете поделиться опытом? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
st_re Posted October 12, 2011 Из комментариев к коммиту ports/misc/zoneinfo Due to legal problems, ado and Paul Eggert have to temporary suspend their work on the timezone database (http://thread.gmane.org/gmane.comp.time.tz/4133). Their work has been continued by volunteers on the tz community and the hosting of the data files is done by Robert Elz at ftp://munnari.oz.au/pub/. Кто-нибудь проделывал танцы с бубномтаймзонами с mysql4 и mysql5. можете поделиться опытом? что то кроме указанного в http://forum.nag.ru/forum/index.php?showtopic=69606&view=findpost&p=643109 там мешает работе с датами , Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
f13 Posted October 12, 2011 У меня с FTP не брались таймзоны. дык, копирасты постарались :( http://pda.opennet.ru/opennews/art.shtml?num=31968 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
st_re Posted October 28, 2011 php, кстати, тоже пользует по умолчанию свою внутреннюю базу. И тогда или апдейтиться или есть такая вот штучка: http://pecl.php.net/package/timezonedb http://www.electrictoolbox.com/correct-php-timezone/ # echo '<?php print (strtotime ("04:00:00 31 Oct 2010")-strtotime ("01:00:00 31 Oct 2010"))/60/60 . "\n" ?>' | php 4 #echo '<?php print (strtotime ("04:00:00 30 Oct 2011")-strtotime ("01:00:00 30 Oct 2011"))/60/60 . "\n" ?>' | php 3 если второе число 4, то опаньки... Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
~AsmodeuS~ Posted October 29, 2011 будет полезно тем кто уже сделал отмену перехода в Украине http://abills.net.ua/forum/viewtopic.php?f=1&t=5795 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...